use core::ffi::*;
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
extern_class!(
#[unsafe(super(NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct GKObstacle;
);
extern_conformance!(
unsafe impl NSObjectProtocol for GKObstacle {}
);
impl GKObstacle {
extern_methods!();
}
impl GKObstacle {
extern_methods!(
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub unsafe fn new() -> Retained<Self>;
);
}
extern_class!(
#[unsafe(super(GKObstacle, NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct GKCircleObstacle;
);
extern_conformance!(
unsafe impl NSObjectProtocol for GKCircleObstacle {}
);
impl GKCircleObstacle {
extern_methods!(
#[unsafe(method(radius))]
#[unsafe(method_family = none)]
pub unsafe fn radius(&self) -> c_float;
#[unsafe(method(setRadius:))]
#[unsafe(method_family = none)]
pub unsafe fn setRadius(&self, radius: c_float);
#[unsafe(method(obstacleWithRadius:))]
#[unsafe(method_family = none)]
pub unsafe fn obstacleWithRadius(radius: c_float) -> Retained<Self>;
#[unsafe(method(initWithRadius:))]
#[unsafe(method_family = init)]
pub unsafe fn initWithRadius(this: Allocated<Self>, radius: c_float) -> Retained<Self>;
);
}
impl GKCircleObstacle {
extern_methods!(
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub unsafe fn new() -> Retained<Self>;
);
}
extern_class!(
#[unsafe(super(GKObstacle, NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct GKPolygonObstacle;
);
extern_conformance!(
unsafe impl NSCoding for GKPolygonObstacle {}
);
extern_conformance!(
unsafe impl NSObjectProtocol for GKPolygonObstacle {}
);
extern_conformance!(
unsafe impl NSSecureCoding for GKPolygonObstacle {}
);
impl GKPolygonObstacle {
extern_methods!(
#[unsafe(method(vertexCount))]
#[unsafe(method_family = none)]
pub unsafe fn vertexCount(&self) -> NSUInteger;
);
}
impl GKPolygonObstacle {
extern_methods!(
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub unsafe fn new() -> Retained<Self>;
);
}
extern_class!(
#[unsafe(super(GKObstacle, NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct GKSphereObstacle;
);
extern_conformance!(
unsafe impl NSObjectProtocol for GKSphereObstacle {}
);
impl GKSphereObstacle {
extern_methods!(
#[unsafe(method(radius))]
#[unsafe(method_family = none)]
pub unsafe fn radius(&self) -> c_float;
#[unsafe(method(setRadius:))]
#[unsafe(method_family = none)]
pub unsafe fn setRadius(&self, radius: c_float);
#[unsafe(method(obstacleWithRadius:))]
#[unsafe(method_family = none)]
pub unsafe fn obstacleWithRadius(radius: c_float) -> Retained<Self>;
#[unsafe(method(initWithRadius:))]
#[unsafe(method_family = init)]
pub unsafe fn initWithRadius(this: Allocated<Self>, radius: c_float) -> Retained<Self>;
);
}
impl GKSphereObstacle {
extern_methods!(
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub unsafe fn new() -> Retained<Self>;
);
}