use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct CATransform3D {
pub m11: CGFloat,
pub m12: CGFloat,
pub m13: CGFloat,
pub m14: CGFloat,
pub m21: CGFloat,
pub m22: CGFloat,
pub m23: CGFloat,
pub m24: CGFloat,
pub m31: CGFloat,
pub m32: CGFloat,
pub m33: CGFloat,
pub m34: CGFloat,
pub m41: CGFloat,
pub m42: CGFloat,
pub m43: CGFloat,
pub m44: CGFloat,
}
unsafe impl Encode for CATransform3D {
const ENCODING: Encoding = Encoding::Struct(
"CATransform3D",
&[
<CGFloat>::ENCODING,
<CGFloat>::ENCODING,
<CGFloat>::ENCODING,
<CGFloat>::ENCODING,
<CGFloat>::ENCODING,
<CGFloat>::ENCODING,
<CGFloat>::ENCODING,
<CGFloat>::ENCODING,
<CGFloat>::ENCODING,
<CGFloat>::ENCODING,
<CGFloat>::ENCODING,
<CGFloat>::ENCODING,
<CGFloat>::ENCODING,
<CGFloat>::ENCODING,
<CGFloat>::ENCODING,
<CGFloat>::ENCODING,
],
);
}
unsafe impl RefEncode for CATransform3D {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
extern "C" {
pub static CATransform3DIdentity: CATransform3D;
}
#[inline]
pub extern "C" fn CATransform3DIsIdentity(t: CATransform3D) -> bool {
extern "C" {
fn CATransform3DIsIdentity(t: CATransform3D) -> bool;
}
unsafe { CATransform3DIsIdentity(t) }
}
#[inline]
pub extern "C" fn CATransform3DEqualToTransform(a: CATransform3D, b: CATransform3D) -> bool {
extern "C" {
fn CATransform3DEqualToTransform(a: CATransform3D, b: CATransform3D) -> bool;
}
unsafe { CATransform3DEqualToTransform(a, b) }
}
#[inline]
pub extern "C" fn CATransform3DMakeTranslation(
tx: CGFloat,
ty: CGFloat,
tz: CGFloat,
) -> CATransform3D {
extern "C" {
fn CATransform3DMakeTranslation(tx: CGFloat, ty: CGFloat, tz: CGFloat) -> CATransform3D;
}
unsafe { CATransform3DMakeTranslation(tx, ty, tz) }
}
#[inline]
pub extern "C" fn CATransform3DMakeScale(sx: CGFloat, sy: CGFloat, sz: CGFloat) -> CATransform3D {
extern "C" {
fn CATransform3DMakeScale(sx: CGFloat, sy: CGFloat, sz: CGFloat) -> CATransform3D;
}
unsafe { CATransform3DMakeScale(sx, sy, sz) }
}
#[inline]
pub extern "C" fn CATransform3DMakeRotation(
angle: CGFloat,
x: CGFloat,
y: CGFloat,
z: CGFloat,
) -> CATransform3D {
extern "C" {
fn CATransform3DMakeRotation(
angle: CGFloat,
x: CGFloat,
y: CGFloat,
z: CGFloat,
) -> CATransform3D;
}
unsafe { CATransform3DMakeRotation(angle, x, y, z) }
}
#[inline]
pub extern "C" fn CATransform3DTranslate(
t: CATransform3D,
tx: CGFloat,
ty: CGFloat,
tz: CGFloat,
) -> CATransform3D {
extern "C" {
fn CATransform3DTranslate(
t: CATransform3D,
tx: CGFloat,
ty: CGFloat,
tz: CGFloat,
) -> CATransform3D;
}
unsafe { CATransform3DTranslate(t, tx, ty, tz) }
}
#[inline]
pub extern "C" fn CATransform3DScale(
t: CATransform3D,
sx: CGFloat,
sy: CGFloat,
sz: CGFloat,
) -> CATransform3D {
extern "C" {
fn CATransform3DScale(
t: CATransform3D,
sx: CGFloat,
sy: CGFloat,
sz: CGFloat,
) -> CATransform3D;
}
unsafe { CATransform3DScale(t, sx, sy, sz) }
}
#[inline]
pub extern "C" fn CATransform3DRotate(
t: CATransform3D,
angle: CGFloat,
x: CGFloat,
y: CGFloat,
z: CGFloat,
) -> CATransform3D {
extern "C" {
fn CATransform3DRotate(
t: CATransform3D,
angle: CGFloat,
x: CGFloat,
y: CGFloat,
z: CGFloat,
) -> CATransform3D;
}
unsafe { CATransform3DRotate(t, angle, x, y, z) }
}
#[inline]
pub extern "C" fn CATransform3DConcat(a: CATransform3D, b: CATransform3D) -> CATransform3D {
extern "C" {
fn CATransform3DConcat(a: CATransform3D, b: CATransform3D) -> CATransform3D;
}
unsafe { CATransform3DConcat(a, b) }
}
#[inline]
pub extern "C" fn CATransform3DInvert(t: CATransform3D) -> CATransform3D {
extern "C" {
fn CATransform3DInvert(t: CATransform3D) -> CATransform3D;
}
unsafe { CATransform3DInvert(t) }
}
#[inline]
pub extern "C" fn CATransform3DIsAffine(t: CATransform3D) -> bool {
extern "C" {
fn CATransform3DIsAffine(t: CATransform3D) -> bool;
}
unsafe { CATransform3DIsAffine(t) }
}
extern_category!(
#[doc(alias = "CATransform3DAdditions")]
pub unsafe trait NSValueCATransform3DAdditions {
#[method_id(@__retain_semantics Other valueWithCATransform3D:)]
unsafe fn valueWithCATransform3D(t: CATransform3D) -> Retained<NSValue>;
#[method(CATransform3DValue)]
unsafe fn CATransform3DValue(&self) -> CATransform3D;
}
unsafe impl NSValueCATransform3DAdditions for NSValue {}
);