objc2_gl_kit/generated/
GLKMatrixStack.rs

1//! This file has been automatically generated by `objc2`'s `header-translator`.
2//! DO NOT EDIT
3use core::cell::UnsafeCell;
4use core::ffi::*;
5use core::marker::{PhantomData, PhantomPinned};
6use core::ptr::NonNull;
7use objc2::__framework_prelude::*;
8#[cfg(feature = "objc2-core-foundation")]
9use objc2_core_foundation::*;
10
11use crate::*;
12
13/// [Apple's documentation](https://developer.apple.com/documentation/glkit/glkmatrixstack?language=objc)
14#[doc(alias = "GLKMatrixStackRef")]
15#[repr(C)]
16pub struct GLKMatrixStack {
17    inner: [u8; 0],
18    _p: UnsafeCell<PhantomData<(*const UnsafeCell<()>, PhantomPinned)>>,
19}
20
21#[cfg(feature = "objc2-core-foundation")]
22cf_type!(
23    unsafe impl GLKMatrixStack {}
24);
25cf_objc2_type!(
26    unsafe impl RefEncode<"_GLKMatrixStack"> for GLKMatrixStack {}
27);
28
29impl GLKMatrixStack {
30    #[doc(alias = "GLKMatrixStackCreate")]
31    #[cfg(feature = "objc2-core-foundation")]
32    #[inline]
33    pub unsafe fn new(alloc: Option<&CFAllocator>) -> Option<CFRetained<GLKMatrixStack>> {
34        extern "C-unwind" {
35            fn GLKMatrixStackCreate(alloc: Option<&CFAllocator>)
36                -> Option<NonNull<GLKMatrixStack>>;
37        }
38        let ret = unsafe { GLKMatrixStackCreate(alloc) };
39        ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
40    }
41}
42
43#[cfg(feature = "objc2-core-foundation")]
44unsafe impl ConcreteType for GLKMatrixStack {
45    #[doc(alias = "GLKMatrixStackGetTypeID")]
46    #[inline]
47    fn type_id() -> CFTypeID {
48        extern "C-unwind" {
49            fn GLKMatrixStackGetTypeID() -> CFTypeID;
50        }
51        unsafe { GLKMatrixStackGetTypeID() }
52    }
53}
54
55impl GLKMatrixStack {
56    #[doc(alias = "GLKMatrixStackPush")]
57    #[inline]
58    pub unsafe fn push(&self) {
59        extern "C-unwind" {
60            fn GLKMatrixStackPush(stack: &GLKMatrixStack);
61        }
62        unsafe { GLKMatrixStackPush(self) }
63    }
64
65    #[doc(alias = "GLKMatrixStackPop")]
66    #[inline]
67    pub unsafe fn pop(&self) {
68        extern "C-unwind" {
69            fn GLKMatrixStackPop(stack: &GLKMatrixStack);
70        }
71        unsafe { GLKMatrixStackPop(self) }
72    }
73
74    #[doc(alias = "GLKMatrixStackSize")]
75    #[inline]
76    pub unsafe fn size(&self) -> c_int {
77        extern "C-unwind" {
78            fn GLKMatrixStackSize(stack: &GLKMatrixStack) -> c_int;
79        }
80        unsafe { GLKMatrixStackSize(self) }
81    }
82
83    #[doc(alias = "GLKMatrixStackLoadMatrix4")]
84    #[cfg(feature = "GLKMathTypes")]
85    #[inline]
86    pub unsafe fn load_matrix4(&self, matrix: GLKMatrix4) {
87        extern "C-unwind" {
88            fn GLKMatrixStackLoadMatrix4(stack: &GLKMatrixStack, matrix: GLKMatrix4);
89        }
90        unsafe { GLKMatrixStackLoadMatrix4(self, matrix) }
91    }
92
93    #[doc(alias = "GLKMatrixStackGetMatrix4")]
94    #[cfg(feature = "GLKMathTypes")]
95    #[inline]
96    pub unsafe fn matrix4(&self) -> GLKMatrix4 {
97        extern "C-unwind" {
98            fn GLKMatrixStackGetMatrix4(stack: &GLKMatrixStack) -> GLKMatrix4;
99        }
100        unsafe { GLKMatrixStackGetMatrix4(self) }
101    }
102
103    #[doc(alias = "GLKMatrixStackGetMatrix3")]
104    #[cfg(feature = "GLKMathTypes")]
105    #[inline]
106    pub unsafe fn matrix3(&self) -> GLKMatrix3 {
107        extern "C-unwind" {
108            fn GLKMatrixStackGetMatrix3(stack: &GLKMatrixStack) -> GLKMatrix3;
109        }
110        unsafe { GLKMatrixStackGetMatrix3(self) }
111    }
112
113    #[doc(alias = "GLKMatrixStackGetMatrix2")]
114    #[cfg(feature = "GLKMathTypes")]
115    #[inline]
116    pub unsafe fn matrix2(&self) -> GLKMatrix2 {
117        extern "C-unwind" {
118            fn GLKMatrixStackGetMatrix2(stack: &GLKMatrixStack) -> GLKMatrix2;
119        }
120        unsafe { GLKMatrixStackGetMatrix2(self) }
121    }
122
123    #[doc(alias = "GLKMatrixStackGetMatrix4Inverse")]
124    #[cfg(feature = "GLKMathTypes")]
125    #[inline]
126    pub unsafe fn matrix4_inverse(&self) -> GLKMatrix4 {
127        extern "C-unwind" {
128            fn GLKMatrixStackGetMatrix4Inverse(stack: &GLKMatrixStack) -> GLKMatrix4;
129        }
130        unsafe { GLKMatrixStackGetMatrix4Inverse(self) }
131    }
132
133    #[doc(alias = "GLKMatrixStackGetMatrix4InverseTranspose")]
134    #[cfg(feature = "GLKMathTypes")]
135    #[inline]
136    pub unsafe fn matrix4_inverse_transpose(&self) -> GLKMatrix4 {
137        extern "C-unwind" {
138            fn GLKMatrixStackGetMatrix4InverseTranspose(stack: &GLKMatrixStack) -> GLKMatrix4;
139        }
140        unsafe { GLKMatrixStackGetMatrix4InverseTranspose(self) }
141    }
142
143    #[doc(alias = "GLKMatrixStackGetMatrix3Inverse")]
144    #[cfg(feature = "GLKMathTypes")]
145    #[inline]
146    pub unsafe fn matrix3_inverse(&self) -> GLKMatrix3 {
147        extern "C-unwind" {
148            fn GLKMatrixStackGetMatrix3Inverse(stack: &GLKMatrixStack) -> GLKMatrix3;
149        }
150        unsafe { GLKMatrixStackGetMatrix3Inverse(self) }
151    }
152
153    #[doc(alias = "GLKMatrixStackGetMatrix3InverseTranspose")]
154    #[cfg(feature = "GLKMathTypes")]
155    #[inline]
156    pub unsafe fn matrix3_inverse_transpose(&self) -> GLKMatrix3 {
157        extern "C-unwind" {
158            fn GLKMatrixStackGetMatrix3InverseTranspose(stack: &GLKMatrixStack) -> GLKMatrix3;
159        }
160        unsafe { GLKMatrixStackGetMatrix3InverseTranspose(self) }
161    }
162
163    #[doc(alias = "GLKMatrixStackMultiplyMatrix4")]
164    #[cfg(feature = "GLKMathTypes")]
165    #[inline]
166    pub unsafe fn multiply_matrix4(&self, matrix: GLKMatrix4) {
167        extern "C-unwind" {
168            fn GLKMatrixStackMultiplyMatrix4(stack: &GLKMatrixStack, matrix: GLKMatrix4);
169        }
170        unsafe { GLKMatrixStackMultiplyMatrix4(self, matrix) }
171    }
172
173    #[doc(alias = "GLKMatrixStackMultiplyMatrixStack")]
174    #[inline]
175    pub unsafe fn multiply_matrix_stack(&self, stack_right: &GLKMatrixStack) {
176        extern "C-unwind" {
177            fn GLKMatrixStackMultiplyMatrixStack(
178                stack_left: &GLKMatrixStack,
179                stack_right: &GLKMatrixStack,
180            );
181        }
182        unsafe { GLKMatrixStackMultiplyMatrixStack(self, stack_right) }
183    }
184
185    #[doc(alias = "GLKMatrixStackTranslate")]
186    #[inline]
187    pub unsafe fn translate(&self, tx: c_float, ty: c_float, tz: c_float) {
188        extern "C-unwind" {
189            fn GLKMatrixStackTranslate(
190                stack: &GLKMatrixStack,
191                tx: c_float,
192                ty: c_float,
193                tz: c_float,
194            );
195        }
196        unsafe { GLKMatrixStackTranslate(self, tx, ty, tz) }
197    }
198
199    #[doc(alias = "GLKMatrixStackTranslateWithVector3")]
200    #[cfg(feature = "GLKMathTypes")]
201    #[inline]
202    pub unsafe fn translate_with_vector3(&self, translation_vector: GLKVector3) {
203        extern "C-unwind" {
204            fn GLKMatrixStackTranslateWithVector3(
205                stack: &GLKMatrixStack,
206                translation_vector: GLKVector3,
207            );
208        }
209        unsafe { GLKMatrixStackTranslateWithVector3(self, translation_vector) }
210    }
211
212    #[doc(alias = "GLKMatrixStackTranslateWithVector4")]
213    #[cfg(feature = "GLKMathTypes")]
214    #[inline]
215    pub unsafe fn translate_with_vector4(&self, translation_vector: GLKVector4) {
216        extern "C-unwind" {
217            fn GLKMatrixStackTranslateWithVector4(
218                stack: &GLKMatrixStack,
219                translation_vector: GLKVector4,
220            );
221        }
222        unsafe { GLKMatrixStackTranslateWithVector4(self, translation_vector) }
223    }
224
225    #[doc(alias = "GLKMatrixStackScale")]
226    #[inline]
227    pub unsafe fn scale(&self, sx: c_float, sy: c_float, sz: c_float) {
228        extern "C-unwind" {
229            fn GLKMatrixStackScale(stack: &GLKMatrixStack, sx: c_float, sy: c_float, sz: c_float);
230        }
231        unsafe { GLKMatrixStackScale(self, sx, sy, sz) }
232    }
233
234    #[doc(alias = "GLKMatrixStackScaleWithVector3")]
235    #[cfg(feature = "GLKMathTypes")]
236    #[inline]
237    pub unsafe fn scale_with_vector3(&self, scale_vector: GLKVector3) {
238        extern "C-unwind" {
239            fn GLKMatrixStackScaleWithVector3(stack: &GLKMatrixStack, scale_vector: GLKVector3);
240        }
241        unsafe { GLKMatrixStackScaleWithVector3(self, scale_vector) }
242    }
243
244    #[doc(alias = "GLKMatrixStackScaleWithVector4")]
245    #[cfg(feature = "GLKMathTypes")]
246    #[inline]
247    pub unsafe fn scale_with_vector4(&self, scale_vector: GLKVector4) {
248        extern "C-unwind" {
249            fn GLKMatrixStackScaleWithVector4(stack: &GLKMatrixStack, scale_vector: GLKVector4);
250        }
251        unsafe { GLKMatrixStackScaleWithVector4(self, scale_vector) }
252    }
253
254    #[doc(alias = "GLKMatrixStackRotate")]
255    #[inline]
256    pub unsafe fn rotate(&self, radians: c_float, x: c_float, y: c_float, z: c_float) {
257        extern "C-unwind" {
258            fn GLKMatrixStackRotate(
259                stack: &GLKMatrixStack,
260                radians: c_float,
261                x: c_float,
262                y: c_float,
263                z: c_float,
264            );
265        }
266        unsafe { GLKMatrixStackRotate(self, radians, x, y, z) }
267    }
268
269    #[doc(alias = "GLKMatrixStackRotateWithVector3")]
270    #[cfg(feature = "GLKMathTypes")]
271    #[inline]
272    pub unsafe fn rotate_with_vector3(&self, radians: c_float, axis_vector: GLKVector3) {
273        extern "C-unwind" {
274            fn GLKMatrixStackRotateWithVector3(
275                stack: &GLKMatrixStack,
276                radians: c_float,
277                axis_vector: GLKVector3,
278            );
279        }
280        unsafe { GLKMatrixStackRotateWithVector3(self, radians, axis_vector) }
281    }
282
283    #[doc(alias = "GLKMatrixStackRotateWithVector4")]
284    #[cfg(feature = "GLKMathTypes")]
285    #[inline]
286    pub unsafe fn rotate_with_vector4(&self, radians: c_float, axis_vector: GLKVector4) {
287        extern "C-unwind" {
288            fn GLKMatrixStackRotateWithVector4(
289                stack: &GLKMatrixStack,
290                radians: c_float,
291                axis_vector: GLKVector4,
292            );
293        }
294        unsafe { GLKMatrixStackRotateWithVector4(self, radians, axis_vector) }
295    }
296
297    #[doc(alias = "GLKMatrixStackRotateX")]
298    #[inline]
299    pub unsafe fn rotate_x(&self, radians: c_float) {
300        extern "C-unwind" {
301            fn GLKMatrixStackRotateX(stack: &GLKMatrixStack, radians: c_float);
302        }
303        unsafe { GLKMatrixStackRotateX(self, radians) }
304    }
305
306    #[doc(alias = "GLKMatrixStackRotateY")]
307    #[inline]
308    pub unsafe fn rotate_y(&self, radians: c_float) {
309        extern "C-unwind" {
310            fn GLKMatrixStackRotateY(stack: &GLKMatrixStack, radians: c_float);
311        }
312        unsafe { GLKMatrixStackRotateY(self, radians) }
313    }
314
315    #[doc(alias = "GLKMatrixStackRotateZ")]
316    #[inline]
317    pub unsafe fn rotate_z(&self, radians: c_float) {
318        extern "C-unwind" {
319            fn GLKMatrixStackRotateZ(stack: &GLKMatrixStack, radians: c_float);
320        }
321        unsafe { GLKMatrixStackRotateZ(self, radians) }
322    }
323}
324
325#[cfg(feature = "objc2-core-foundation")]
326#[deprecated = "renamed to `GLKMatrixStack::new`"]
327#[inline]
328pub unsafe extern "C-unwind" fn GLKMatrixStackCreate(
329    alloc: Option<&CFAllocator>,
330) -> Option<CFRetained<GLKMatrixStack>> {
331    extern "C-unwind" {
332        fn GLKMatrixStackCreate(alloc: Option<&CFAllocator>) -> Option<NonNull<GLKMatrixStack>>;
333    }
334    let ret = unsafe { GLKMatrixStackCreate(alloc) };
335    ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
336}
337
338extern "C-unwind" {
339    #[deprecated = "renamed to `GLKMatrixStack::push`"]
340    pub fn GLKMatrixStackPush(stack: &GLKMatrixStack);
341}
342
343extern "C-unwind" {
344    #[deprecated = "renamed to `GLKMatrixStack::pop`"]
345    pub fn GLKMatrixStackPop(stack: &GLKMatrixStack);
346}
347
348extern "C-unwind" {
349    #[deprecated = "renamed to `GLKMatrixStack::size`"]
350    pub fn GLKMatrixStackSize(stack: &GLKMatrixStack) -> c_int;
351}
352
353extern "C-unwind" {
354    #[cfg(feature = "GLKMathTypes")]
355    #[deprecated = "renamed to `GLKMatrixStack::load_matrix4`"]
356    pub fn GLKMatrixStackLoadMatrix4(stack: &GLKMatrixStack, matrix: GLKMatrix4);
357}
358
359extern "C-unwind" {
360    #[cfg(feature = "GLKMathTypes")]
361    #[deprecated = "renamed to `GLKMatrixStack::matrix4`"]
362    pub fn GLKMatrixStackGetMatrix4(stack: &GLKMatrixStack) -> GLKMatrix4;
363}
364
365extern "C-unwind" {
366    #[cfg(feature = "GLKMathTypes")]
367    #[deprecated = "renamed to `GLKMatrixStack::matrix3`"]
368    pub fn GLKMatrixStackGetMatrix3(stack: &GLKMatrixStack) -> GLKMatrix3;
369}
370
371extern "C-unwind" {
372    #[cfg(feature = "GLKMathTypes")]
373    #[deprecated = "renamed to `GLKMatrixStack::matrix2`"]
374    pub fn GLKMatrixStackGetMatrix2(stack: &GLKMatrixStack) -> GLKMatrix2;
375}
376
377extern "C-unwind" {
378    #[cfg(feature = "GLKMathTypes")]
379    #[deprecated = "renamed to `GLKMatrixStack::matrix4_inverse`"]
380    pub fn GLKMatrixStackGetMatrix4Inverse(stack: &GLKMatrixStack) -> GLKMatrix4;
381}
382
383extern "C-unwind" {
384    #[cfg(feature = "GLKMathTypes")]
385    #[deprecated = "renamed to `GLKMatrixStack::matrix4_inverse_transpose`"]
386    pub fn GLKMatrixStackGetMatrix4InverseTranspose(stack: &GLKMatrixStack) -> GLKMatrix4;
387}
388
389extern "C-unwind" {
390    #[cfg(feature = "GLKMathTypes")]
391    #[deprecated = "renamed to `GLKMatrixStack::matrix3_inverse`"]
392    pub fn GLKMatrixStackGetMatrix3Inverse(stack: &GLKMatrixStack) -> GLKMatrix3;
393}
394
395extern "C-unwind" {
396    #[cfg(feature = "GLKMathTypes")]
397    #[deprecated = "renamed to `GLKMatrixStack::matrix3_inverse_transpose`"]
398    pub fn GLKMatrixStackGetMatrix3InverseTranspose(stack: &GLKMatrixStack) -> GLKMatrix3;
399}
400
401extern "C-unwind" {
402    #[cfg(feature = "GLKMathTypes")]
403    #[deprecated = "renamed to `GLKMatrixStack::multiply_matrix4`"]
404    pub fn GLKMatrixStackMultiplyMatrix4(stack: &GLKMatrixStack, matrix: GLKMatrix4);
405}
406
407extern "C-unwind" {
408    #[deprecated = "renamed to `GLKMatrixStack::multiply_matrix_stack`"]
409    pub fn GLKMatrixStackMultiplyMatrixStack(
410        stack_left: &GLKMatrixStack,
411        stack_right: &GLKMatrixStack,
412    );
413}
414
415extern "C-unwind" {
416    #[deprecated = "renamed to `GLKMatrixStack::translate`"]
417    pub fn GLKMatrixStackTranslate(stack: &GLKMatrixStack, tx: c_float, ty: c_float, tz: c_float);
418}
419
420extern "C-unwind" {
421    #[cfg(feature = "GLKMathTypes")]
422    #[deprecated = "renamed to `GLKMatrixStack::translate_with_vector3`"]
423    pub fn GLKMatrixStackTranslateWithVector3(
424        stack: &GLKMatrixStack,
425        translation_vector: GLKVector3,
426    );
427}
428
429extern "C-unwind" {
430    #[cfg(feature = "GLKMathTypes")]
431    #[deprecated = "renamed to `GLKMatrixStack::translate_with_vector4`"]
432    pub fn GLKMatrixStackTranslateWithVector4(
433        stack: &GLKMatrixStack,
434        translation_vector: GLKVector4,
435    );
436}
437
438extern "C-unwind" {
439    #[deprecated = "renamed to `GLKMatrixStack::scale`"]
440    pub fn GLKMatrixStackScale(stack: &GLKMatrixStack, sx: c_float, sy: c_float, sz: c_float);
441}
442
443extern "C-unwind" {
444    #[cfg(feature = "GLKMathTypes")]
445    #[deprecated = "renamed to `GLKMatrixStack::scale_with_vector3`"]
446    pub fn GLKMatrixStackScaleWithVector3(stack: &GLKMatrixStack, scale_vector: GLKVector3);
447}
448
449extern "C-unwind" {
450    #[cfg(feature = "GLKMathTypes")]
451    #[deprecated = "renamed to `GLKMatrixStack::scale_with_vector4`"]
452    pub fn GLKMatrixStackScaleWithVector4(stack: &GLKMatrixStack, scale_vector: GLKVector4);
453}
454
455extern "C-unwind" {
456    #[deprecated = "renamed to `GLKMatrixStack::rotate`"]
457    pub fn GLKMatrixStackRotate(
458        stack: &GLKMatrixStack,
459        radians: c_float,
460        x: c_float,
461        y: c_float,
462        z: c_float,
463    );
464}
465
466extern "C-unwind" {
467    #[cfg(feature = "GLKMathTypes")]
468    #[deprecated = "renamed to `GLKMatrixStack::rotate_with_vector3`"]
469    pub fn GLKMatrixStackRotateWithVector3(
470        stack: &GLKMatrixStack,
471        radians: c_float,
472        axis_vector: GLKVector3,
473    );
474}
475
476extern "C-unwind" {
477    #[cfg(feature = "GLKMathTypes")]
478    #[deprecated = "renamed to `GLKMatrixStack::rotate_with_vector4`"]
479    pub fn GLKMatrixStackRotateWithVector4(
480        stack: &GLKMatrixStack,
481        radians: c_float,
482        axis_vector: GLKVector4,
483    );
484}
485
486extern "C-unwind" {
487    #[deprecated = "renamed to `GLKMatrixStack::rotate_x`"]
488    pub fn GLKMatrixStackRotateX(stack: &GLKMatrixStack, radians: c_float);
489}
490
491extern "C-unwind" {
492    #[deprecated = "renamed to `GLKMatrixStack::rotate_y`"]
493    pub fn GLKMatrixStackRotateY(stack: &GLKMatrixStack, radians: c_float);
494}
495
496extern "C-unwind" {
497    #[deprecated = "renamed to `GLKMatrixStack::rotate_z`"]
498    pub fn GLKMatrixStackRotateZ(stack: &GLKMatrixStack, radians: c_float);
499}