objc2_scene_kit/generated/
SCNCamera.rs

1//! This file has been automatically generated by `objc2`'s `header-translator`.
2//! DO NOT EDIT
3use core::ffi::*;
4use core::ptr::NonNull;
5use objc2::__framework_prelude::*;
6#[cfg(feature = "objc2-core-foundation")]
7use objc2_core_foundation::*;
8use objc2_foundation::*;
9
10use crate::*;
11
12/// [Apple's documentation](https://developer.apple.com/documentation/scenekit/scncameraprojectiondirection?language=objc)
13// NS_ENUM
14#[repr(transparent)]
15#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
16pub struct SCNCameraProjectionDirection(pub NSInteger);
17impl SCNCameraProjectionDirection {
18    #[doc(alias = "SCNCameraProjectionDirectionVertical")]
19    pub const Vertical: Self = Self(0);
20    #[doc(alias = "SCNCameraProjectionDirectionHorizontal")]
21    pub const Horizontal: Self = Self(1);
22}
23
24unsafe impl Encode for SCNCameraProjectionDirection {
25    const ENCODING: Encoding = NSInteger::ENCODING;
26}
27
28unsafe impl RefEncode for SCNCameraProjectionDirection {
29    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
30}
31
32extern_class!(
33    /// SCNCamera represents a camera that can be attached to a SCNNode.
34    ///
35    /// A node with a camera can be used as a point of view to visualize a 3D scene.
36    ///
37    /// See also [Apple's documentation](https://developer.apple.com/documentation/scenekit/scncamera?language=objc)
38    #[unsafe(super(NSObject))]
39    #[derive(Debug, PartialEq, Eq, Hash)]
40    pub struct SCNCamera;
41);
42
43extern_conformance!(
44    unsafe impl NSCoding for SCNCamera {}
45);
46
47extern_conformance!(
48    unsafe impl NSCopying for SCNCamera {}
49);
50
51unsafe impl CopyingHelper for SCNCamera {
52    type Result = Self;
53}
54
55extern_conformance!(
56    unsafe impl NSObjectProtocol for SCNCamera {}
57);
58
59extern_conformance!(
60    unsafe impl NSSecureCoding for SCNCamera {}
61);
62
63#[cfg(feature = "SCNAnimation")]
64extern_conformance!(
65    unsafe impl SCNAnimatable for SCNCamera {}
66);
67
68#[cfg(feature = "SCNTechnique")]
69extern_conformance!(
70    unsafe impl SCNTechniqueSupport for SCNCamera {}
71);
72
73impl SCNCamera {
74    extern_methods!(
75        /// Creates and returns a camera instance.
76        #[unsafe(method(camera))]
77        #[unsafe(method_family = none)]
78        pub unsafe fn camera() -> Retained<Self>;
79
80        /// Determines the name of the receiver.
81        #[unsafe(method(name))]
82        #[unsafe(method_family = none)]
83        pub unsafe fn name(&self) -> Option<Retained<NSString>>;
84
85        /// Setter for [`name`][Self::name].
86        #[unsafe(method(setName:))]
87        #[unsafe(method_family = none)]
88        pub unsafe fn setName(&self, name: Option<&NSString>);
89
90        #[cfg(feature = "objc2-core-foundation")]
91        /// Determines the receiver's field of view (in degree). Defaults to 60°. Animatable.
92        ///
93        /// The fieldOfView is automatically updated when the sensorHeight or focalLength are set. Setting the fieldOfView will update the focalLength according to the new fieldOfView and the current sensorHeight.
94        #[unsafe(method(fieldOfView))]
95        #[unsafe(method_family = none)]
96        pub unsafe fn fieldOfView(&self) -> CGFloat;
97
98        #[cfg(feature = "objc2-core-foundation")]
99        /// Setter for [`fieldOfView`][Self::fieldOfView].
100        #[unsafe(method(setFieldOfView:))]
101        #[unsafe(method_family = none)]
102        pub unsafe fn setFieldOfView(&self, field_of_view: CGFloat);
103
104        /// Determines whether the fieldOfView (or orthographicScale) is vertical or horizontal. Defaults to vertical.
105        #[unsafe(method(projectionDirection))]
106        #[unsafe(method_family = none)]
107        pub unsafe fn projectionDirection(&self) -> SCNCameraProjectionDirection;
108
109        /// Setter for [`projectionDirection`][Self::projectionDirection].
110        #[unsafe(method(setProjectionDirection:))]
111        #[unsafe(method_family = none)]
112        pub unsafe fn setProjectionDirection(
113            &self,
114            projection_direction: SCNCameraProjectionDirection,
115        );
116
117        #[cfg(feature = "objc2-core-foundation")]
118        /// Determines the receiver's focal length in millimeter. Defaults to 50mm. Animatable.
119        ///
120        /// The focalLength is automatically updated when the sensorHeight or fieldOfView are set. Setting the focalLength will update the fieldOfView according to the new focalLength and the current sensorHeight.
121        #[unsafe(method(focalLength))]
122        #[unsafe(method_family = none)]
123        pub unsafe fn focalLength(&self) -> CGFloat;
124
125        #[cfg(feature = "objc2-core-foundation")]
126        /// Setter for [`focalLength`][Self::focalLength].
127        #[unsafe(method(setFocalLength:))]
128        #[unsafe(method_family = none)]
129        pub unsafe fn setFocalLength(&self, focal_length: CGFloat);
130
131        #[cfg(feature = "objc2-core-foundation")]
132        /// Determines the vertical size of the sensor in millimeter. Defaults to 24mm. Animatable.
133        ///
134        /// Setting the sensorHeight will automatically update the fieldOfView according to the new sensorHeight and the current focalLength.
135        #[unsafe(method(sensorHeight))]
136        #[unsafe(method_family = none)]
137        pub unsafe fn sensorHeight(&self) -> CGFloat;
138
139        #[cfg(feature = "objc2-core-foundation")]
140        /// Setter for [`sensorHeight`][Self::sensorHeight].
141        #[unsafe(method(setSensorHeight:))]
142        #[unsafe(method_family = none)]
143        pub unsafe fn setSensorHeight(&self, sensor_height: CGFloat);
144
145        /// Determines the receiver's near value. Animatable.
146        ///
147        /// The near value determines the minimal distance between the camera and a visible surface. If a surface is closer to the camera than this minimal distance, then the surface is clipped. The near value must be different than zero. Defaults to 1.
148        #[unsafe(method(zNear))]
149        #[unsafe(method_family = none)]
150        pub unsafe fn zNear(&self) -> c_double;
151
152        /// Setter for [`zNear`][Self::zNear].
153        #[unsafe(method(setZNear:))]
154        #[unsafe(method_family = none)]
155        pub unsafe fn setZNear(&self, z_near: c_double);
156
157        /// Determines the receiver's far value. Animatable.
158        ///
159        /// The far value determines the maximal distance between the camera and a visible surface. If a surface is further from the camera than this maximal distance, then the surface is clipped. Defaults to 100.
160        #[unsafe(method(zFar))]
161        #[unsafe(method_family = none)]
162        pub unsafe fn zFar(&self) -> c_double;
163
164        /// Setter for [`zFar`][Self::zFar].
165        #[unsafe(method(setZFar:))]
166        #[unsafe(method_family = none)]
167        pub unsafe fn setZFar(&self, z_far: c_double);
168
169        /// Determines whether the receiver automatically adjusts the zFar value. Defaults to NO.
170        ///
171        /// When set to YES, the near and far planes are automatically set to fit the bounding box of the entire scene at render time.
172        #[unsafe(method(automaticallyAdjustsZRange))]
173        #[unsafe(method_family = none)]
174        pub unsafe fn automaticallyAdjustsZRange(&self) -> bool;
175
176        /// Setter for [`automaticallyAdjustsZRange`][Self::automaticallyAdjustsZRange].
177        #[unsafe(method(setAutomaticallyAdjustsZRange:))]
178        #[unsafe(method_family = none)]
179        pub unsafe fn setAutomaticallyAdjustsZRange(&self, automatically_adjusts_z_range: bool);
180
181        /// Determines whether the receiver uses an orthographic projection or not. Defaults to NO.
182        #[unsafe(method(usesOrthographicProjection))]
183        #[unsafe(method_family = none)]
184        pub unsafe fn usesOrthographicProjection(&self) -> bool;
185
186        /// Setter for [`usesOrthographicProjection`][Self::usesOrthographicProjection].
187        #[unsafe(method(setUsesOrthographicProjection:))]
188        #[unsafe(method_family = none)]
189        pub unsafe fn setUsesOrthographicProjection(&self, uses_orthographic_projection: bool);
190
191        /// Determines the receiver's orthographic scale value. Animatable. Defaults to 1.
192        ///
193        /// This setting determines the size of the camera's visible area. This is only enabled when usesOrthographicProjection is set to YES.
194        #[unsafe(method(orthographicScale))]
195        #[unsafe(method_family = none)]
196        pub unsafe fn orthographicScale(&self) -> c_double;
197
198        /// Setter for [`orthographicScale`][Self::orthographicScale].
199        #[unsafe(method(setOrthographicScale:))]
200        #[unsafe(method_family = none)]
201        pub unsafe fn setOrthographicScale(&self, orthographic_scale: c_double);
202
203        #[cfg(all(feature = "SceneKitTypes", feature = "objc2-quartz-core"))]
204        #[cfg(not(target_os = "watchos"))]
205        /// Determines the projection transform used by the camera to project the world onscreen.
206        #[unsafe(method(projectionTransform))]
207        #[unsafe(method_family = none)]
208        pub unsafe fn projectionTransform(&self) -> SCNMatrix4;
209
210        #[cfg(all(feature = "SceneKitTypes", feature = "objc2-quartz-core"))]
211        #[cfg(not(target_os = "watchos"))]
212        /// Setter for [`projectionTransform`][Self::projectionTransform].
213        #[unsafe(method(setProjectionTransform:))]
214        #[unsafe(method_family = none)]
215        pub unsafe fn setProjectionTransform(&self, projection_transform: SCNMatrix4);
216
217        #[cfg(all(
218            feature = "SceneKitTypes",
219            feature = "objc2-core-foundation",
220            feature = "objc2-quartz-core"
221        ))]
222        #[cfg(not(target_os = "watchos"))]
223        #[unsafe(method(projectionTransformWithViewportSize:))]
224        #[unsafe(method_family = none)]
225        pub unsafe fn projectionTransformWithViewportSize(
226            &self,
227            viewport_size: CGSize,
228        ) -> SCNMatrix4;
229
230        /// Determines if the receiver has depth of field. Defaults to NO.
231        #[unsafe(method(wantsDepthOfField))]
232        #[unsafe(method_family = none)]
233        pub unsafe fn wantsDepthOfField(&self) -> bool;
234
235        /// Setter for [`wantsDepthOfField`][Self::wantsDepthOfField].
236        #[unsafe(method(setWantsDepthOfField:))]
237        #[unsafe(method_family = none)]
238        pub unsafe fn setWantsDepthOfField(&self, wants_depth_of_field: bool);
239
240        #[cfg(feature = "objc2-core-foundation")]
241        /// Determines the receiver's focus distance. Animatable.
242        ///
243        /// Defaults to 2.5
244        #[unsafe(method(focusDistance))]
245        #[unsafe(method_family = none)]
246        pub unsafe fn focusDistance(&self) -> CGFloat;
247
248        #[cfg(feature = "objc2-core-foundation")]
249        /// Setter for [`focusDistance`][Self::focusDistance].
250        #[unsafe(method(setFocusDistance:))]
251        #[unsafe(method_family = none)]
252        pub unsafe fn setFocusDistance(&self, focus_distance: CGFloat);
253
254        /// Determines the receiver's sample count for depth of field effect.
255        ///
256        /// Defaults to 25.
257        #[unsafe(method(focalBlurSampleCount))]
258        #[unsafe(method_family = none)]
259        pub unsafe fn focalBlurSampleCount(&self) -> NSInteger;
260
261        /// Setter for [`focalBlurSampleCount`][Self::focalBlurSampleCount].
262        #[unsafe(method(setFocalBlurSampleCount:))]
263        #[unsafe(method_family = none)]
264        pub unsafe fn setFocalBlurSampleCount(&self, focal_blur_sample_count: NSInteger);
265
266        #[cfg(feature = "objc2-core-foundation")]
267        /// Determines the receiver's fstop. Animatable.
268        ///
269        /// Defaults to 5.6.
270        #[unsafe(method(fStop))]
271        #[unsafe(method_family = none)]
272        pub unsafe fn fStop(&self) -> CGFloat;
273
274        #[cfg(feature = "objc2-core-foundation")]
275        /// Setter for [`fStop`][Self::fStop].
276        #[unsafe(method(setFStop:))]
277        #[unsafe(method_family = none)]
278        pub unsafe fn setFStop(&self, f_stop: CGFloat);
279
280        /// Determines the receiver's blade count of the aperture.
281        ///
282        /// Defaults to 6.
283        #[unsafe(method(apertureBladeCount))]
284        #[unsafe(method_family = none)]
285        pub unsafe fn apertureBladeCount(&self) -> NSInteger;
286
287        /// Setter for [`apertureBladeCount`][Self::apertureBladeCount].
288        #[unsafe(method(setApertureBladeCount:))]
289        #[unsafe(method_family = none)]
290        pub unsafe fn setApertureBladeCount(&self, aperture_blade_count: NSInteger);
291
292        #[cfg(feature = "objc2-core-foundation")]
293        /// Determines the intensity of the motion blur. Animatable. Defaults to 0.
294        ///
295        /// An intensity of zero means no motion blur. The intensity should not exceeed 1.
296        #[unsafe(method(motionBlurIntensity))]
297        #[unsafe(method_family = none)]
298        pub unsafe fn motionBlurIntensity(&self) -> CGFloat;
299
300        #[cfg(feature = "objc2-core-foundation")]
301        /// Setter for [`motionBlurIntensity`][Self::motionBlurIntensity].
302        #[unsafe(method(setMotionBlurIntensity:))]
303        #[unsafe(method_family = none)]
304        pub unsafe fn setMotionBlurIntensity(&self, motion_blur_intensity: CGFloat);
305
306        #[cfg(feature = "objc2-core-foundation")]
307        /// Determines the intensity of the screen space ambient occlusion. Animatable.
308        ///
309        /// defaults to 0.
310        #[unsafe(method(screenSpaceAmbientOcclusionIntensity))]
311        #[unsafe(method_family = none)]
312        pub unsafe fn screenSpaceAmbientOcclusionIntensity(&self) -> CGFloat;
313
314        #[cfg(feature = "objc2-core-foundation")]
315        /// Setter for [`screenSpaceAmbientOcclusionIntensity`][Self::screenSpaceAmbientOcclusionIntensity].
316        #[unsafe(method(setScreenSpaceAmbientOcclusionIntensity:))]
317        #[unsafe(method_family = none)]
318        pub unsafe fn setScreenSpaceAmbientOcclusionIntensity(
319            &self,
320            screen_space_ambient_occlusion_intensity: CGFloat,
321        );
322
323        #[cfg(feature = "objc2-core-foundation")]
324        /// Determines the screen space ambient occlusion radius in scene unit. Animatable.
325        ///
326        /// defaults to 5.
327        #[unsafe(method(screenSpaceAmbientOcclusionRadius))]
328        #[unsafe(method_family = none)]
329        pub unsafe fn screenSpaceAmbientOcclusionRadius(&self) -> CGFloat;
330
331        #[cfg(feature = "objc2-core-foundation")]
332        /// Setter for [`screenSpaceAmbientOcclusionRadius`][Self::screenSpaceAmbientOcclusionRadius].
333        #[unsafe(method(setScreenSpaceAmbientOcclusionRadius:))]
334        #[unsafe(method_family = none)]
335        pub unsafe fn setScreenSpaceAmbientOcclusionRadius(
336            &self,
337            screen_space_ambient_occlusion_radius: CGFloat,
338        );
339
340        #[cfg(feature = "objc2-core-foundation")]
341        /// Determines self occlusion bias in scene unit.
342        ///
343        /// defaults to 0.03.
344        #[unsafe(method(screenSpaceAmbientOcclusionBias))]
345        #[unsafe(method_family = none)]
346        pub unsafe fn screenSpaceAmbientOcclusionBias(&self) -> CGFloat;
347
348        #[cfg(feature = "objc2-core-foundation")]
349        /// Setter for [`screenSpaceAmbientOcclusionBias`][Self::screenSpaceAmbientOcclusionBias].
350        #[unsafe(method(setScreenSpaceAmbientOcclusionBias:))]
351        #[unsafe(method_family = none)]
352        pub unsafe fn setScreenSpaceAmbientOcclusionBias(
353            &self,
354            screen_space_ambient_occlusion_bias: CGFloat,
355        );
356
357        #[cfg(feature = "objc2-core-foundation")]
358        /// Determines the depth blur threshold in scene unit.
359        ///
360        /// defaults to 0.2.
361        #[unsafe(method(screenSpaceAmbientOcclusionDepthThreshold))]
362        #[unsafe(method_family = none)]
363        pub unsafe fn screenSpaceAmbientOcclusionDepthThreshold(&self) -> CGFloat;
364
365        #[cfg(feature = "objc2-core-foundation")]
366        /// Setter for [`screenSpaceAmbientOcclusionDepthThreshold`][Self::screenSpaceAmbientOcclusionDepthThreshold].
367        #[unsafe(method(setScreenSpaceAmbientOcclusionDepthThreshold:))]
368        #[unsafe(method_family = none)]
369        pub unsafe fn setScreenSpaceAmbientOcclusionDepthThreshold(
370            &self,
371            screen_space_ambient_occlusion_depth_threshold: CGFloat,
372        );
373
374        #[cfg(feature = "objc2-core-foundation")]
375        /// Determines the normal blur threshold.
376        ///
377        /// defaults to 0.3.
378        #[unsafe(method(screenSpaceAmbientOcclusionNormalThreshold))]
379        #[unsafe(method_family = none)]
380        pub unsafe fn screenSpaceAmbientOcclusionNormalThreshold(&self) -> CGFloat;
381
382        #[cfg(feature = "objc2-core-foundation")]
383        /// Setter for [`screenSpaceAmbientOcclusionNormalThreshold`][Self::screenSpaceAmbientOcclusionNormalThreshold].
384        #[unsafe(method(setScreenSpaceAmbientOcclusionNormalThreshold:))]
385        #[unsafe(method_family = none)]
386        pub unsafe fn setScreenSpaceAmbientOcclusionNormalThreshold(
387            &self,
388            screen_space_ambient_occlusion_normal_threshold: CGFloat,
389        );
390
391        /// Determines if the receiver has a high dynamic range. Defaults to NO.
392        #[unsafe(method(wantsHDR))]
393        #[unsafe(method_family = none)]
394        pub unsafe fn wantsHDR(&self) -> bool;
395
396        /// Setter for [`wantsHDR`][Self::wantsHDR].
397        #[unsafe(method(setWantsHDR:))]
398        #[unsafe(method_family = none)]
399        pub unsafe fn setWantsHDR(&self, wants_hdr: bool);
400
401        #[cfg(feature = "objc2-core-foundation")]
402        /// Determines the logarithmic exposure biasing, in EV. Defaults to 0.
403        #[unsafe(method(exposureOffset))]
404        #[unsafe(method_family = none)]
405        pub unsafe fn exposureOffset(&self) -> CGFloat;
406
407        #[cfg(feature = "objc2-core-foundation")]
408        /// Setter for [`exposureOffset`][Self::exposureOffset].
409        #[unsafe(method(setExposureOffset:))]
410        #[unsafe(method_family = none)]
411        pub unsafe fn setExposureOffset(&self, exposure_offset: CGFloat);
412
413        #[cfg(feature = "objc2-core-foundation")]
414        /// Determines the average gray level desired in the final image. Defaults to 0.18.
415        #[unsafe(method(averageGray))]
416        #[unsafe(method_family = none)]
417        pub unsafe fn averageGray(&self) -> CGFloat;
418
419        #[cfg(feature = "objc2-core-foundation")]
420        /// Setter for [`averageGray`][Self::averageGray].
421        #[unsafe(method(setAverageGray:))]
422        #[unsafe(method_family = none)]
423        pub unsafe fn setAverageGray(&self, average_gray: CGFloat);
424
425        #[cfg(feature = "objc2-core-foundation")]
426        /// Determines the smallest luminance level that will be mapped to white in the final image. Defaults to 1.
427        #[unsafe(method(whitePoint))]
428        #[unsafe(method_family = none)]
429        pub unsafe fn whitePoint(&self) -> CGFloat;
430
431        #[cfg(feature = "objc2-core-foundation")]
432        /// Setter for [`whitePoint`][Self::whitePoint].
433        #[unsafe(method(setWhitePoint:))]
434        #[unsafe(method_family = none)]
435        pub unsafe fn setWhitePoint(&self, white_point: CGFloat);
436
437        /// Determines if the receiver should simulate an eye and continuously adjust to luminance. Defaults to YES.
438        #[unsafe(method(wantsExposureAdaptation))]
439        #[unsafe(method_family = none)]
440        pub unsafe fn wantsExposureAdaptation(&self) -> bool;
441
442        /// Setter for [`wantsExposureAdaptation`][Self::wantsExposureAdaptation].
443        #[unsafe(method(setWantsExposureAdaptation:))]
444        #[unsafe(method_family = none)]
445        pub unsafe fn setWantsExposureAdaptation(&self, wants_exposure_adaptation: bool);
446
447        #[cfg(feature = "objc2-core-foundation")]
448        /// Determines the exposure adaptation speed when going from bright areas to dark areas. Defaults to 0.4.
449        #[unsafe(method(exposureAdaptationBrighteningSpeedFactor))]
450        #[unsafe(method_family = none)]
451        pub unsafe fn exposureAdaptationBrighteningSpeedFactor(&self) -> CGFloat;
452
453        #[cfg(feature = "objc2-core-foundation")]
454        /// Setter for [`exposureAdaptationBrighteningSpeedFactor`][Self::exposureAdaptationBrighteningSpeedFactor].
455        #[unsafe(method(setExposureAdaptationBrighteningSpeedFactor:))]
456        #[unsafe(method_family = none)]
457        pub unsafe fn setExposureAdaptationBrighteningSpeedFactor(
458            &self,
459            exposure_adaptation_brightening_speed_factor: CGFloat,
460        );
461
462        #[cfg(feature = "objc2-core-foundation")]
463        /// Determines the exposure adaptation speed when going from dark areas to bright areas. Defaults to 0.6.
464        #[unsafe(method(exposureAdaptationDarkeningSpeedFactor))]
465        #[unsafe(method_family = none)]
466        pub unsafe fn exposureAdaptationDarkeningSpeedFactor(&self) -> CGFloat;
467
468        #[cfg(feature = "objc2-core-foundation")]
469        /// Setter for [`exposureAdaptationDarkeningSpeedFactor`][Self::exposureAdaptationDarkeningSpeedFactor].
470        #[unsafe(method(setExposureAdaptationDarkeningSpeedFactor:))]
471        #[unsafe(method_family = none)]
472        pub unsafe fn setExposureAdaptationDarkeningSpeedFactor(
473            &self,
474            exposure_adaptation_darkening_speed_factor: CGFloat,
475        );
476
477        #[cfg(feature = "objc2-core-foundation")]
478        /// Determines the minimum exposure offset of the adaptation, in EV. Defaults to -15.
479        #[unsafe(method(minimumExposure))]
480        #[unsafe(method_family = none)]
481        pub unsafe fn minimumExposure(&self) -> CGFloat;
482
483        #[cfg(feature = "objc2-core-foundation")]
484        /// Setter for [`minimumExposure`][Self::minimumExposure].
485        #[unsafe(method(setMinimumExposure:))]
486        #[unsafe(method_family = none)]
487        pub unsafe fn setMinimumExposure(&self, minimum_exposure: CGFloat);
488
489        #[cfg(feature = "objc2-core-foundation")]
490        /// Determines the maximum exposure offset of the adaptation, in EV. Defaults to -15.
491        #[unsafe(method(maximumExposure))]
492        #[unsafe(method_family = none)]
493        pub unsafe fn maximumExposure(&self) -> CGFloat;
494
495        #[cfg(feature = "objc2-core-foundation")]
496        /// Setter for [`maximumExposure`][Self::maximumExposure].
497        #[unsafe(method(setMaximumExposure:))]
498        #[unsafe(method_family = none)]
499        pub unsafe fn setMaximumExposure(&self, maximum_exposure: CGFloat);
500
501        #[cfg(feature = "objc2-core-foundation")]
502        /// Determines the luminance threshold for the bloom effect. Animatable. Defaults to 1.
503        #[unsafe(method(bloomThreshold))]
504        #[unsafe(method_family = none)]
505        pub unsafe fn bloomThreshold(&self) -> CGFloat;
506
507        #[cfg(feature = "objc2-core-foundation")]
508        /// Setter for [`bloomThreshold`][Self::bloomThreshold].
509        #[unsafe(method(setBloomThreshold:))]
510        #[unsafe(method_family = none)]
511        pub unsafe fn setBloomThreshold(&self, bloom_threshold: CGFloat);
512
513        /// Determines the number of blur iterations. Defaults to 1.
514        #[unsafe(method(bloomIterationCount))]
515        #[unsafe(method_family = none)]
516        pub unsafe fn bloomIterationCount(&self) -> NSInteger;
517
518        /// Setter for [`bloomIterationCount`][Self::bloomIterationCount].
519        #[unsafe(method(setBloomIterationCount:))]
520        #[unsafe(method_family = none)]
521        pub unsafe fn setBloomIterationCount(&self, bloom_iteration_count: NSInteger);
522
523        #[cfg(feature = "objc2-core-foundation")]
524        /// Determines how the bloom iterations are spread. Defaults to 0.
525        #[unsafe(method(bloomIterationSpread))]
526        #[unsafe(method_family = none)]
527        pub unsafe fn bloomIterationSpread(&self) -> CGFloat;
528
529        #[cfg(feature = "objc2-core-foundation")]
530        /// Setter for [`bloomIterationSpread`][Self::bloomIterationSpread].
531        #[unsafe(method(setBloomIterationSpread:))]
532        #[unsafe(method_family = none)]
533        pub unsafe fn setBloomIterationSpread(&self, bloom_iteration_spread: CGFloat);
534
535        #[cfg(feature = "objc2-core-foundation")]
536        /// Determines the intensity of the bloom effect. Animatable. Defaults to 0 (no effect).
537        #[unsafe(method(bloomIntensity))]
538        #[unsafe(method_family = none)]
539        pub unsafe fn bloomIntensity(&self) -> CGFloat;
540
541        #[cfg(feature = "objc2-core-foundation")]
542        /// Setter for [`bloomIntensity`][Self::bloomIntensity].
543        #[unsafe(method(setBloomIntensity:))]
544        #[unsafe(method_family = none)]
545        pub unsafe fn setBloomIntensity(&self, bloom_intensity: CGFloat);
546
547        #[cfg(feature = "objc2-core-foundation")]
548        /// Determines the radius of the bloom effect in points. Animatable. Defaults to 4.
549        #[unsafe(method(bloomBlurRadius))]
550        #[unsafe(method_family = none)]
551        pub unsafe fn bloomBlurRadius(&self) -> CGFloat;
552
553        #[cfg(feature = "objc2-core-foundation")]
554        /// Setter for [`bloomBlurRadius`][Self::bloomBlurRadius].
555        #[unsafe(method(setBloomBlurRadius:))]
556        #[unsafe(method_family = none)]
557        pub unsafe fn setBloomBlurRadius(&self, bloom_blur_radius: CGFloat);
558
559        #[cfg(feature = "objc2-core-foundation")]
560        /// Controls the shape of the vignetting effect. Defaults to 0 (no effect).
561        #[unsafe(method(vignettingPower))]
562        #[unsafe(method_family = none)]
563        pub unsafe fn vignettingPower(&self) -> CGFloat;
564
565        #[cfg(feature = "objc2-core-foundation")]
566        /// Setter for [`vignettingPower`][Self::vignettingPower].
567        #[unsafe(method(setVignettingPower:))]
568        #[unsafe(method_family = none)]
569        pub unsafe fn setVignettingPower(&self, vignetting_power: CGFloat);
570
571        #[cfg(feature = "objc2-core-foundation")]
572        /// Controls the intensity of the vignetting effect. Defaults to 0 (no effect).
573        #[unsafe(method(vignettingIntensity))]
574        #[unsafe(method_family = none)]
575        pub unsafe fn vignettingIntensity(&self) -> CGFloat;
576
577        #[cfg(feature = "objc2-core-foundation")]
578        /// Setter for [`vignettingIntensity`][Self::vignettingIntensity].
579        #[unsafe(method(setVignettingIntensity:))]
580        #[unsafe(method_family = none)]
581        pub unsafe fn setVignettingIntensity(&self, vignetting_intensity: CGFloat);
582
583        #[cfg(feature = "objc2-core-foundation")]
584        /// Controls the strength of the color shift effect. Defaults to 0 (no effect).
585        #[unsafe(method(colorFringeStrength))]
586        #[unsafe(method_family = none)]
587        pub unsafe fn colorFringeStrength(&self) -> CGFloat;
588
589        #[cfg(feature = "objc2-core-foundation")]
590        /// Setter for [`colorFringeStrength`][Self::colorFringeStrength].
591        #[unsafe(method(setColorFringeStrength:))]
592        #[unsafe(method_family = none)]
593        pub unsafe fn setColorFringeStrength(&self, color_fringe_strength: CGFloat);
594
595        #[cfg(feature = "objc2-core-foundation")]
596        /// Controls the intensity of the color shift effect. Defaults to 1.
597        #[unsafe(method(colorFringeIntensity))]
598        #[unsafe(method_family = none)]
599        pub unsafe fn colorFringeIntensity(&self) -> CGFloat;
600
601        #[cfg(feature = "objc2-core-foundation")]
602        /// Setter for [`colorFringeIntensity`][Self::colorFringeIntensity].
603        #[unsafe(method(setColorFringeIntensity:))]
604        #[unsafe(method_family = none)]
605        pub unsafe fn setColorFringeIntensity(&self, color_fringe_intensity: CGFloat);
606
607        #[cfg(feature = "objc2-core-foundation")]
608        /// Controls the overall saturation of the scene. Defaults to 1 (no effect).
609        #[unsafe(method(saturation))]
610        #[unsafe(method_family = none)]
611        pub unsafe fn saturation(&self) -> CGFloat;
612
613        #[cfg(feature = "objc2-core-foundation")]
614        /// Setter for [`saturation`][Self::saturation].
615        #[unsafe(method(setSaturation:))]
616        #[unsafe(method_family = none)]
617        pub unsafe fn setSaturation(&self, saturation: CGFloat);
618
619        #[cfg(feature = "objc2-core-foundation")]
620        /// Controls the overall contrast of the scene. Defaults to 0 (no effect).
621        #[unsafe(method(contrast))]
622        #[unsafe(method_family = none)]
623        pub unsafe fn contrast(&self) -> CGFloat;
624
625        #[cfg(feature = "objc2-core-foundation")]
626        /// Setter for [`contrast`][Self::contrast].
627        #[unsafe(method(setContrast:))]
628        #[unsafe(method_family = none)]
629        pub unsafe fn setContrast(&self, contrast: CGFloat);
630
631        #[cfg(feature = "objc2-core-foundation")]
632        /// Controls the intensity of the grain. Defaults to 0 (no effect).
633        #[unsafe(method(grainIntensity))]
634        #[unsafe(method_family = none)]
635        pub unsafe fn grainIntensity(&self) -> CGFloat;
636
637        #[cfg(feature = "objc2-core-foundation")]
638        /// Setter for [`grainIntensity`][Self::grainIntensity].
639        #[unsafe(method(setGrainIntensity:))]
640        #[unsafe(method_family = none)]
641        pub unsafe fn setGrainIntensity(&self, grain_intensity: CGFloat);
642
643        #[cfg(feature = "objc2-core-foundation")]
644        /// Controls the scale of the grain. Defaults to 1.
645        #[unsafe(method(grainScale))]
646        #[unsafe(method_family = none)]
647        pub unsafe fn grainScale(&self) -> CGFloat;
648
649        #[cfg(feature = "objc2-core-foundation")]
650        /// Setter for [`grainScale`][Self::grainScale].
651        #[unsafe(method(setGrainScale:))]
652        #[unsafe(method_family = none)]
653        pub unsafe fn setGrainScale(&self, grain_scale: CGFloat);
654
655        /// Determines if the grain is colored or not. Defaults to NO.
656        #[unsafe(method(grainIsColored))]
657        #[unsafe(method_family = none)]
658        pub unsafe fn grainIsColored(&self) -> bool;
659
660        /// Setter for [`grainIsColored`][Self::grainIsColored].
661        #[unsafe(method(setGrainIsColored:))]
662        #[unsafe(method_family = none)]
663        pub unsafe fn setGrainIsColored(&self, grain_is_colored: bool);
664
665        #[cfg(feature = "objc2-core-foundation")]
666        /// Controls the overall white balance temperature of the scene. Defaults to 0 (no effect).
667        #[unsafe(method(whiteBalanceTemperature))]
668        #[unsafe(method_family = none)]
669        pub unsafe fn whiteBalanceTemperature(&self) -> CGFloat;
670
671        #[cfg(feature = "objc2-core-foundation")]
672        /// Setter for [`whiteBalanceTemperature`][Self::whiteBalanceTemperature].
673        #[unsafe(method(setWhiteBalanceTemperature:))]
674        #[unsafe(method_family = none)]
675        pub unsafe fn setWhiteBalanceTemperature(&self, white_balance_temperature: CGFloat);
676
677        #[cfg(feature = "objc2-core-foundation")]
678        /// Controls the overall white balance tint of the scene. Defaults to 0 (no effect).
679        #[unsafe(method(whiteBalanceTint))]
680        #[unsafe(method_family = none)]
681        pub unsafe fn whiteBalanceTint(&self) -> CGFloat;
682
683        #[cfg(feature = "objc2-core-foundation")]
684        /// Setter for [`whiteBalanceTint`][Self::whiteBalanceTint].
685        #[unsafe(method(setWhiteBalanceTint:))]
686        #[unsafe(method_family = none)]
687        pub unsafe fn setWhiteBalanceTint(&self, white_balance_tint: CGFloat);
688
689        #[cfg(feature = "SCNMaterialProperty")]
690        /// Specifies a lookup texture to apply color grading. The contents must a 2D image representing `n` slices of a unit color cube texture, arranged in an horizontal row of `n` images. For instance, a color cube of dimension 16x16x16 should be provided as an image of size 256x16.
691        #[unsafe(method(colorGrading))]
692        #[unsafe(method_family = none)]
693        pub unsafe fn colorGrading(&self) -> Retained<SCNMaterialProperty>;
694
695        /// Determines the node categories that are visible from the receiver. Defaults to all bits set.
696        #[unsafe(method(categoryBitMask))]
697        #[unsafe(method_family = none)]
698        pub unsafe fn categoryBitMask(&self) -> NSUInteger;
699
700        /// Setter for [`categoryBitMask`][Self::categoryBitMask].
701        #[unsafe(method(setCategoryBitMask:))]
702        #[unsafe(method_family = none)]
703        pub unsafe fn setCategoryBitMask(&self, category_bit_mask: NSUInteger);
704    );
705}
706
707/// Methods declared on superclass `NSObject`.
708impl SCNCamera {
709    extern_methods!(
710        #[unsafe(method(init))]
711        #[unsafe(method_family = init)]
712        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
713
714        #[unsafe(method(new))]
715        #[unsafe(method_family = new)]
716        pub unsafe fn new() -> Retained<Self>;
717    );
718}