use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct CIFeature;
unsafe impl ClassType for CIFeature {
type Super = NSObject;
type Mutability = InteriorMutable;
}
);
unsafe impl NSObjectProtocol for CIFeature {}
extern_methods!(
unsafe impl CIFeature {
#[method_id(@__retain_semantics Other type)]
pub unsafe fn r#type(&self) -> Retained<NSString>;
#[method(bounds)]
pub unsafe fn bounds(&self) -> CGRect;
}
);
extern_methods!(
unsafe impl CIFeature {
#[method_id(@__retain_semantics Init init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[method_id(@__retain_semantics New new)]
pub unsafe fn new() -> Retained<Self>;
}
);
extern "C" {
pub static CIFeatureTypeFace: &'static NSString;
}
extern "C" {
pub static CIFeatureTypeRectangle: &'static NSString;
}
extern "C" {
pub static CIFeatureTypeQRCode: &'static NSString;
}
extern "C" {
pub static CIFeatureTypeText: &'static NSString;
}
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct CIFaceFeature;
unsafe impl ClassType for CIFaceFeature {
#[inherits(NSObject)]
type Super = CIFeature;
type Mutability = InteriorMutable;
}
);
unsafe impl NSObjectProtocol for CIFaceFeature {}
extern_methods!(
unsafe impl CIFaceFeature {
#[method(bounds)]
pub unsafe fn bounds(&self) -> CGRect;
#[method(hasLeftEyePosition)]
pub unsafe fn hasLeftEyePosition(&self) -> bool;
#[method(leftEyePosition)]
pub unsafe fn leftEyePosition(&self) -> CGPoint;
#[method(hasRightEyePosition)]
pub unsafe fn hasRightEyePosition(&self) -> bool;
#[method(rightEyePosition)]
pub unsafe fn rightEyePosition(&self) -> CGPoint;
#[method(hasMouthPosition)]
pub unsafe fn hasMouthPosition(&self) -> bool;
#[method(mouthPosition)]
pub unsafe fn mouthPosition(&self) -> CGPoint;
#[method(hasTrackingID)]
pub unsafe fn hasTrackingID(&self) -> bool;
#[method(trackingID)]
pub unsafe fn trackingID(&self) -> c_int;
#[method(hasTrackingFrameCount)]
pub unsafe fn hasTrackingFrameCount(&self) -> bool;
#[method(trackingFrameCount)]
pub unsafe fn trackingFrameCount(&self) -> c_int;
#[method(hasFaceAngle)]
pub unsafe fn hasFaceAngle(&self) -> bool;
#[method(faceAngle)]
pub unsafe fn faceAngle(&self) -> c_float;
#[method(hasSmile)]
pub unsafe fn hasSmile(&self) -> bool;
#[method(leftEyeClosed)]
pub unsafe fn leftEyeClosed(&self) -> bool;
#[method(rightEyeClosed)]
pub unsafe fn rightEyeClosed(&self) -> bool;
}
);
extern_methods!(
unsafe impl CIFaceFeature {
#[method_id(@__retain_semantics Init init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[method_id(@__retain_semantics New new)]
pub unsafe fn new() -> Retained<Self>;
}
);
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct CIRectangleFeature;
unsafe impl ClassType for CIRectangleFeature {
#[inherits(NSObject)]
type Super = CIFeature;
type Mutability = InteriorMutable;
}
);
unsafe impl NSObjectProtocol for CIRectangleFeature {}
extern_methods!(
unsafe impl CIRectangleFeature {
#[method(bounds)]
pub unsafe fn bounds(&self) -> CGRect;
#[method(topLeft)]
pub unsafe fn topLeft(&self) -> CGPoint;
#[method(topRight)]
pub unsafe fn topRight(&self) -> CGPoint;
#[method(bottomLeft)]
pub unsafe fn bottomLeft(&self) -> CGPoint;
#[method(bottomRight)]
pub unsafe fn bottomRight(&self) -> CGPoint;
}
);
extern_methods!(
unsafe impl CIRectangleFeature {
#[method_id(@__retain_semantics Init init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[method_id(@__retain_semantics New new)]
pub unsafe fn new() -> Retained<Self>;
}
);
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct CIQRCodeFeature;
unsafe impl ClassType for CIQRCodeFeature {
#[inherits(NSObject)]
type Super = CIFeature;
type Mutability = InteriorMutable;
}
);
unsafe impl NSCoding for CIQRCodeFeature {}
unsafe impl NSCopying for CIQRCodeFeature {}
unsafe impl NSObjectProtocol for CIQRCodeFeature {}
unsafe impl NSSecureCoding for CIQRCodeFeature {}
extern_methods!(
unsafe impl CIQRCodeFeature {
#[method(bounds)]
pub unsafe fn bounds(&self) -> CGRect;
#[method(topLeft)]
pub unsafe fn topLeft(&self) -> CGPoint;
#[method(topRight)]
pub unsafe fn topRight(&self) -> CGPoint;
#[method(bottomLeft)]
pub unsafe fn bottomLeft(&self) -> CGPoint;
#[method(bottomRight)]
pub unsafe fn bottomRight(&self) -> CGPoint;
#[method_id(@__retain_semantics Other messageString)]
pub unsafe fn messageString(&self) -> Option<Retained<NSString>>;
#[cfg(feature = "CIBarcodeDescriptor")]
#[method_id(@__retain_semantics Other symbolDescriptor)]
pub unsafe fn symbolDescriptor(&self) -> Option<Retained<CIQRCodeDescriptor>>;
}
);
extern_methods!(
unsafe impl CIQRCodeFeature {
#[method_id(@__retain_semantics Init init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[method_id(@__retain_semantics New new)]
pub unsafe fn new() -> Retained<Self>;
}
);
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct CITextFeature;
unsafe impl ClassType for CITextFeature {
#[inherits(NSObject)]
type Super = CIFeature;
type Mutability = InteriorMutable;
}
);
unsafe impl NSObjectProtocol for CITextFeature {}
extern_methods!(
unsafe impl CITextFeature {
#[method(bounds)]
pub unsafe fn bounds(&self) -> CGRect;
#[method(topLeft)]
pub unsafe fn topLeft(&self) -> CGPoint;
#[method(topRight)]
pub unsafe fn topRight(&self) -> CGPoint;
#[method(bottomLeft)]
pub unsafe fn bottomLeft(&self) -> CGPoint;
#[method(bottomRight)]
pub unsafe fn bottomRight(&self) -> CGPoint;
#[method_id(@__retain_semantics Other subFeatures)]
pub unsafe fn subFeatures(&self) -> Option<Retained<NSArray>>;
}
);
extern_methods!(
unsafe impl CITextFeature {
#[method_id(@__retain_semantics Init init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[method_id(@__retain_semantics New new)]
pub unsafe fn new() -> Retained<Self>;
}
);