objc2_metal/generated/
MTLAccelerationStructureTypes.rs

1//! This file has been automatically generated by `objc2`'s `header-translator`.
2//! DO NOT EDIT
3use core::ffi::*;
4use objc2::__framework_prelude::*;
5
6use crate::*;
7
8/// [Apple's documentation](https://developer.apple.com/documentation/metal/mtlpackedfloatquaternion?language=objc)
9#[repr(C)]
10#[derive(Clone, Copy, Debug, PartialEq)]
11pub struct MTLPackedFloatQuaternion {
12    pub x: c_float,
13    pub y: c_float,
14    pub z: c_float,
15    pub w: c_float,
16}
17
18unsafe impl Encode for MTLPackedFloatQuaternion {
19    const ENCODING: Encoding = Encoding::Struct(
20        "MTLPackedFloatQuaternion",
21        &[
22            <c_float>::ENCODING,
23            <c_float>::ENCODING,
24            <c_float>::ENCODING,
25            <c_float>::ENCODING,
26        ],
27    );
28}
29
30unsafe impl RefEncode for MTLPackedFloatQuaternion {
31    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
32}
33
34impl MTLPackedFloatQuaternion {
35    // TODO: pub fn MTLPackedFloatQuaternionMake(x: c_float,y: c_float,z: c_float,w: c_float,) -> MTLPackedFloatQuaternion;
36}
37
38/// [Apple's documentation](https://developer.apple.com/documentation/metal/mtlpackedfloat4x3?language=objc)
39#[repr(C)]
40#[derive(Clone, Copy, Debug, PartialEq)]
41pub struct MTLPackedFloat4x3 {
42    pub columns: [MTLPackedFloat3; 4],
43}
44
45unsafe impl Encode for MTLPackedFloat4x3 {
46    const ENCODING: Encoding =
47        Encoding::Struct("_MTLPackedFloat4x3", &[<[MTLPackedFloat3; 4]>::ENCODING]);
48}
49
50unsafe impl RefEncode for MTLPackedFloat4x3 {
51    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
52}
53
54/// An axis aligned bounding box with a min and max point
55///
56/// See also [Apple's documentation](https://developer.apple.com/documentation/metal/mtlaxisalignedboundingbox?language=objc)
57#[repr(C)]
58#[derive(Clone, Copy, Debug, PartialEq)]
59pub struct MTLAxisAlignedBoundingBox {
60    /// Minimum point
61    pub min: MTLPackedFloat3,
62    /// Maximum point
63    pub max: MTLPackedFloat3,
64}
65
66unsafe impl Encode for MTLAxisAlignedBoundingBox {
67    const ENCODING: Encoding = Encoding::Struct(
68        "_MTLAxisAlignedBoundingBox",
69        &[<MTLPackedFloat3>::ENCODING, <MTLPackedFloat3>::ENCODING],
70    );
71}
72
73unsafe impl RefEncode for MTLAxisAlignedBoundingBox {
74    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
75}
76
77/// A transformation represented by individual components such as translation and
78/// rotation. The rotation is represented by a quaternion, allowing for correct motion
79/// interpolation.
80///
81/// See also [Apple's documentation](https://developer.apple.com/documentation/metal/mtlcomponenttransform?language=objc)
82#[repr(C)]
83#[derive(Clone, Copy, Debug, PartialEq)]
84pub struct MTLComponentTransform {
85    /// The scale of the instance applied before rotation alongside shear and pivot
86    pub scale: MTLPackedFloat3,
87    /// The shear of the instance applied before rotation alongside scale and pivot
88    pub shear: MTLPackedFloat3,
89    /// Translation applied before rotation alongside scale and shear. Allows
90    /// rotation to pivot around a point.
91    pub pivot: MTLPackedFloat3,
92    /// The rotation of the instance as a normalized quaternion. Applied after scale,
93    /// shear, and pivot and before translation
94    pub rotation: MTLPackedFloatQuaternion,
95    /// The translation of the instance. Applied after rotation. Typically contains
96    /// the composition of object translation and the inverse of the pivot translation.
97    pub translation: MTLPackedFloat3,
98}
99
100unsafe impl Encode for MTLComponentTransform {
101    const ENCODING: Encoding = Encoding::Struct(
102        "?",
103        &[
104            <MTLPackedFloat3>::ENCODING,
105            <MTLPackedFloat3>::ENCODING,
106            <MTLPackedFloat3>::ENCODING,
107            <MTLPackedFloatQuaternion>::ENCODING,
108            <MTLPackedFloat3>::ENCODING,
109        ],
110    );
111}
112
113unsafe impl RefEncode for MTLComponentTransform {
114    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
115}