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