objc2-gameplay-kit 0.3.2

Bindings to the GameplayKit framework
Documentation
//! This file has been automatically generated by `objc2`'s `header-translator`.
//! DO NOT EDIT
use core::ffi::*;
use objc2::__framework_prelude::*;
#[cfg(feature = "objc2-scene-kit")]
use objc2_scene_kit::*;

use crate::*;

mod private_SCNNodeGameplayKit {
    pub trait Sealed {}
}

/// Category "GameplayKit" on [`SCNNode`].
#[doc(alias = "GameplayKit")]
pub unsafe trait SCNNodeGameplayKit:
    ClassType + Sized + private_SCNNodeGameplayKit::Sealed
{
    extern_methods!(
        #[cfg(feature = "GKEntity")]
        /// The GKEntity associated with the node via a GKSCNNodeComponent.
        ///
        ///
        /// See: GKEntity
        #[unsafe(method(entity))]
        #[unsafe(method_family = none)]
        unsafe fn entity(&self) -> Option<Retained<GKEntity>>;

        #[cfg(feature = "GKEntity")]
        /// Setter for [`entity`][Self::entity].
        ///
        /// This is a [weak property][objc2::topics::weak_property].
        #[unsafe(method(setEntity:))]
        #[unsafe(method_family = none)]
        unsafe fn setEntity(&self, entity: Option<&GKEntity>);
    );
}

#[cfg(feature = "objc2-scene-kit")]
impl private_SCNNodeGameplayKit::Sealed for SCNNode {}
#[cfg(feature = "objc2-scene-kit")]
unsafe impl SCNNodeGameplayKit for SCNNode {}

#[cfg(all(feature = "GKScene", feature = "objc2-scene-kit"))]
extern_conformance!(
    unsafe impl GKSceneRootNodeType for SCNScene {}
);