objc2_scene_kit/generated/
SCNMaterial.rs1use 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
12pub type SCNLightingModel = NSString;
15
16extern "C" {
17 pub static SCNLightingModelPhong: &'static SCNLightingModel;
19}
20
21extern "C" {
22 pub static SCNLightingModelBlinn: &'static SCNLightingModel;
24}
25
26extern "C" {
27 pub static SCNLightingModelLambert: &'static SCNLightingModel;
29}
30
31extern "C" {
32 pub static SCNLightingModelConstant: &'static SCNLightingModel;
34}
35
36extern "C" {
37 pub static SCNLightingModelPhysicallyBased: &'static SCNLightingModel;
39}
40
41extern "C" {
42 pub static SCNLightingModelShadowOnly: &'static SCNLightingModel;
44}
45
46#[repr(transparent)]
49#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
50pub struct SCNFillMode(pub NSUInteger);
51impl SCNFillMode {
52 #[doc(alias = "SCNFillModeFill")]
53 pub const Fill: Self = Self(0);
54 #[doc(alias = "SCNFillModeLines")]
55 pub const Lines: Self = Self(1);
56}
57
58unsafe impl Encode for SCNFillMode {
59 const ENCODING: Encoding = NSUInteger::ENCODING;
60}
61
62unsafe impl RefEncode for SCNFillMode {
63 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
64}
65
66#[repr(transparent)]
69#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
70pub struct SCNCullMode(pub NSInteger);
71impl SCNCullMode {
72 #[doc(alias = "SCNCullModeBack")]
73 pub const Back: Self = Self(0);
74 #[doc(alias = "SCNCullModeFront")]
75 pub const Front: Self = Self(1);
76}
77
78unsafe impl Encode for SCNCullMode {
79 const ENCODING: Encoding = NSInteger::ENCODING;
80}
81
82unsafe impl RefEncode for SCNCullMode {
83 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
84}
85
86#[repr(transparent)]
89#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
90pub struct SCNTransparencyMode(pub NSInteger);
91impl SCNTransparencyMode {
92 #[doc(alias = "SCNTransparencyModeAOne")]
93 pub const AOne: Self = Self(0);
94 #[doc(alias = "SCNTransparencyModeRGBZero")]
95 pub const RGBZero: Self = Self(1);
96 #[doc(alias = "SCNTransparencyModeSingleLayer")]
97 pub const SingleLayer: Self = Self(2);
98 #[doc(alias = "SCNTransparencyModeDualLayer")]
99 pub const DualLayer: Self = Self(3);
100 #[doc(alias = "SCNTransparencyModeDefault")]
101 pub const Default: Self = Self(SCNTransparencyMode::AOne.0);
102}
103
104unsafe impl Encode for SCNTransparencyMode {
105 const ENCODING: Encoding = NSInteger::ENCODING;
106}
107
108unsafe impl RefEncode for SCNTransparencyMode {
109 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
110}
111
112#[repr(transparent)]
117#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
118pub struct SCNBlendMode(pub NSInteger);
119impl SCNBlendMode {
120 #[doc(alias = "SCNBlendModeAlpha")]
121 pub const Alpha: Self = Self(0);
122 #[doc(alias = "SCNBlendModeAdd")]
123 pub const Add: Self = Self(1);
124 #[doc(alias = "SCNBlendModeSubtract")]
125 pub const Subtract: Self = Self(2);
126 #[doc(alias = "SCNBlendModeMultiply")]
127 pub const Multiply: Self = Self(3);
128 #[doc(alias = "SCNBlendModeScreen")]
129 pub const Screen: Self = Self(4);
130 #[doc(alias = "SCNBlendModeReplace")]
131 pub const Replace: Self = Self(5);
132 #[doc(alias = "SCNBlendModeMax")]
133 pub const Max: Self = Self(6);
134}
135
136unsafe impl Encode for SCNBlendMode {
137 const ENCODING: Encoding = NSInteger::ENCODING;
138}
139
140unsafe impl RefEncode for SCNBlendMode {
141 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
142}
143
144extern_class!(
145 #[unsafe(super(NSObject))]
149 #[derive(Debug, PartialEq, Eq, Hash)]
150 pub struct SCNMaterial;
151);
152
153extern_conformance!(
154 unsafe impl NSCoding for SCNMaterial {}
155);
156
157extern_conformance!(
158 unsafe impl NSCopying for SCNMaterial {}
159);
160
161unsafe impl CopyingHelper for SCNMaterial {
162 type Result = Self;
163}
164
165extern_conformance!(
166 unsafe impl NSObjectProtocol for SCNMaterial {}
167);
168
169extern_conformance!(
170 unsafe impl NSSecureCoding for SCNMaterial {}
171);
172
173#[cfg(feature = "SCNAnimation")]
174extern_conformance!(
175 unsafe impl SCNAnimatable for SCNMaterial {}
176);
177
178#[cfg(feature = "SCNShadable")]
179extern_conformance!(
180 unsafe impl SCNShadable for SCNMaterial {}
181);
182
183impl SCNMaterial {
184 extern_methods!(
185 #[unsafe(method(material))]
187 #[unsafe(method_family = none)]
188 pub unsafe fn material() -> Retained<Self>;
189
190 #[unsafe(method(name))]
192 #[unsafe(method_family = none)]
193 pub unsafe fn name(&self) -> Option<Retained<NSString>>;
194
195 #[unsafe(method(setName:))]
199 #[unsafe(method_family = none)]
200 pub unsafe fn setName(&self, name: Option<&NSString>);
201
202 #[cfg(feature = "SCNMaterialProperty")]
203 #[unsafe(method(diffuse))]
207 #[unsafe(method_family = none)]
208 pub unsafe fn diffuse(&self) -> Retained<SCNMaterialProperty>;
209
210 #[cfg(feature = "SCNMaterialProperty")]
211 #[unsafe(method(ambient))]
215 #[unsafe(method_family = none)]
216 pub unsafe fn ambient(&self) -> Retained<SCNMaterialProperty>;
217
218 #[cfg(feature = "SCNMaterialProperty")]
219 #[unsafe(method(specular))]
223 #[unsafe(method_family = none)]
224 pub unsafe fn specular(&self) -> Retained<SCNMaterialProperty>;
225
226 #[cfg(feature = "SCNMaterialProperty")]
227 #[unsafe(method(emission))]
229 #[unsafe(method_family = none)]
230 pub unsafe fn emission(&self) -> Retained<SCNMaterialProperty>;
231
232 #[cfg(feature = "SCNMaterialProperty")]
233 #[unsafe(method(transparent))]
235 #[unsafe(method_family = none)]
236 pub unsafe fn transparent(&self) -> Retained<SCNMaterialProperty>;
237
238 #[cfg(feature = "SCNMaterialProperty")]
239 #[unsafe(method(reflective))]
241 #[unsafe(method_family = none)]
242 pub unsafe fn reflective(&self) -> Retained<SCNMaterialProperty>;
243
244 #[cfg(feature = "SCNMaterialProperty")]
245 #[unsafe(method(multiply))]
247 #[unsafe(method_family = none)]
248 pub unsafe fn multiply(&self) -> Retained<SCNMaterialProperty>;
249
250 #[cfg(feature = "SCNMaterialProperty")]
251 #[unsafe(method(normal))]
255 #[unsafe(method_family = none)]
256 pub unsafe fn normal(&self) -> Retained<SCNMaterialProperty>;
257
258 #[cfg(feature = "SCNMaterialProperty")]
259 #[unsafe(method(displacement))]
263 #[unsafe(method_family = none)]
264 pub unsafe fn displacement(&self) -> Retained<SCNMaterialProperty>;
265
266 #[cfg(feature = "SCNMaterialProperty")]
267 #[unsafe(method(ambientOcclusion))]
269 #[unsafe(method_family = none)]
270 pub unsafe fn ambientOcclusion(&self) -> Retained<SCNMaterialProperty>;
271
272 #[cfg(feature = "SCNMaterialProperty")]
273 #[unsafe(method(selfIllumination))]
275 #[unsafe(method_family = none)]
276 pub unsafe fn selfIllumination(&self) -> Retained<SCNMaterialProperty>;
277
278 #[cfg(feature = "SCNMaterialProperty")]
279 #[unsafe(method(metalness))]
281 #[unsafe(method_family = none)]
282 pub unsafe fn metalness(&self) -> Retained<SCNMaterialProperty>;
283
284 #[cfg(feature = "SCNMaterialProperty")]
285 #[unsafe(method(roughness))]
287 #[unsafe(method_family = none)]
288 pub unsafe fn roughness(&self) -> Retained<SCNMaterialProperty>;
289
290 #[cfg(feature = "SCNMaterialProperty")]
291 #[unsafe(method(clearCoat))]
293 #[unsafe(method_family = none)]
294 pub unsafe fn clearCoat(&self) -> Retained<SCNMaterialProperty>;
295
296 #[cfg(feature = "SCNMaterialProperty")]
297 #[unsafe(method(clearCoatRoughness))]
299 #[unsafe(method_family = none)]
300 pub unsafe fn clearCoatRoughness(&self) -> Retained<SCNMaterialProperty>;
301
302 #[cfg(feature = "SCNMaterialProperty")]
303 #[unsafe(method(clearCoatNormal))]
305 #[unsafe(method_family = none)]
306 pub unsafe fn clearCoatNormal(&self) -> Retained<SCNMaterialProperty>;
307
308 #[cfg(feature = "objc2-core-foundation")]
309 #[unsafe(method(shininess))]
311 #[unsafe(method_family = none)]
312 pub unsafe fn shininess(&self) -> CGFloat;
313
314 #[cfg(feature = "objc2-core-foundation")]
315 #[unsafe(method(setShininess:))]
317 #[unsafe(method_family = none)]
318 pub unsafe fn setShininess(&self, shininess: CGFloat);
319
320 #[cfg(feature = "objc2-core-foundation")]
321 #[unsafe(method(transparency))]
325 #[unsafe(method_family = none)]
326 pub unsafe fn transparency(&self) -> CGFloat;
327
328 #[cfg(feature = "objc2-core-foundation")]
329 #[unsafe(method(setTransparency:))]
331 #[unsafe(method_family = none)]
332 pub unsafe fn setTransparency(&self, transparency: CGFloat);
333
334 #[unsafe(method(lightingModelName))]
336 #[unsafe(method_family = none)]
337 pub unsafe fn lightingModelName(&self) -> Retained<SCNLightingModel>;
338
339 #[unsafe(method(setLightingModelName:))]
343 #[unsafe(method_family = none)]
344 pub unsafe fn setLightingModelName(&self, lighting_model_name: &SCNLightingModel);
345
346 #[unsafe(method(isLitPerPixel))]
348 #[unsafe(method_family = none)]
349 pub unsafe fn isLitPerPixel(&self) -> bool;
350
351 #[unsafe(method(setLitPerPixel:))]
353 #[unsafe(method_family = none)]
354 pub unsafe fn setLitPerPixel(&self, lit_per_pixel: bool);
355
356 #[unsafe(method(isDoubleSided))]
358 #[unsafe(method_family = none)]
359 pub unsafe fn isDoubleSided(&self) -> bool;
360
361 #[unsafe(method(setDoubleSided:))]
363 #[unsafe(method_family = none)]
364 pub unsafe fn setDoubleSided(&self, double_sided: bool);
365
366 #[unsafe(method(fillMode))]
368 #[unsafe(method_family = none)]
369 pub unsafe fn fillMode(&self) -> SCNFillMode;
370
371 #[unsafe(method(setFillMode:))]
373 #[unsafe(method_family = none)]
374 pub unsafe fn setFillMode(&self, fill_mode: SCNFillMode);
375
376 #[unsafe(method(cullMode))]
378 #[unsafe(method_family = none)]
379 pub unsafe fn cullMode(&self) -> SCNCullMode;
380
381 #[unsafe(method(setCullMode:))]
383 #[unsafe(method_family = none)]
384 pub unsafe fn setCullMode(&self, cull_mode: SCNCullMode);
385
386 #[unsafe(method(transparencyMode))]
388 #[unsafe(method_family = none)]
389 pub unsafe fn transparencyMode(&self) -> SCNTransparencyMode;
390
391 #[unsafe(method(setTransparencyMode:))]
393 #[unsafe(method_family = none)]
394 pub unsafe fn setTransparencyMode(&self, transparency_mode: SCNTransparencyMode);
395
396 #[unsafe(method(locksAmbientWithDiffuse))]
398 #[unsafe(method_family = none)]
399 pub unsafe fn locksAmbientWithDiffuse(&self) -> bool;
400
401 #[unsafe(method(setLocksAmbientWithDiffuse:))]
403 #[unsafe(method_family = none)]
404 pub unsafe fn setLocksAmbientWithDiffuse(&self, locks_ambient_with_diffuse: bool);
405
406 #[unsafe(method(writesToDepthBuffer))]
408 #[unsafe(method_family = none)]
409 pub unsafe fn writesToDepthBuffer(&self) -> bool;
410
411 #[unsafe(method(setWritesToDepthBuffer:))]
413 #[unsafe(method_family = none)]
414 pub unsafe fn setWritesToDepthBuffer(&self, writes_to_depth_buffer: bool);
415
416 #[cfg(feature = "SceneKitTypes")]
417 #[unsafe(method(colorBufferWriteMask))]
419 #[unsafe(method_family = none)]
420 pub unsafe fn colorBufferWriteMask(&self) -> SCNColorMask;
421
422 #[cfg(feature = "SceneKitTypes")]
423 #[unsafe(method(setColorBufferWriteMask:))]
425 #[unsafe(method_family = none)]
426 pub unsafe fn setColorBufferWriteMask(&self, color_buffer_write_mask: SCNColorMask);
427
428 #[unsafe(method(readsFromDepthBuffer))]
430 #[unsafe(method_family = none)]
431 pub unsafe fn readsFromDepthBuffer(&self) -> bool;
432
433 #[unsafe(method(setReadsFromDepthBuffer:))]
435 #[unsafe(method_family = none)]
436 pub unsafe fn setReadsFromDepthBuffer(&self, reads_from_depth_buffer: bool);
437
438 #[cfg(feature = "objc2-core-foundation")]
439 #[unsafe(method(fresnelExponent))]
443 #[unsafe(method_family = none)]
444 pub unsafe fn fresnelExponent(&self) -> CGFloat;
445
446 #[cfg(feature = "objc2-core-foundation")]
447 #[unsafe(method(setFresnelExponent:))]
449 #[unsafe(method_family = none)]
450 pub unsafe fn setFresnelExponent(&self, fresnel_exponent: CGFloat);
451
452 #[unsafe(method(blendMode))]
454 #[unsafe(method_family = none)]
455 pub unsafe fn blendMode(&self) -> SCNBlendMode;
456
457 #[unsafe(method(setBlendMode:))]
459 #[unsafe(method_family = none)]
460 pub unsafe fn setBlendMode(&self, blend_mode: SCNBlendMode);
461 );
462}
463
464impl SCNMaterial {
466 extern_methods!(
467 #[unsafe(method(init))]
468 #[unsafe(method_family = init)]
469 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
470
471 #[unsafe(method(new))]
472 #[unsafe(method_family = new)]
473 pub unsafe fn new() -> Retained<Self>;
474 );
475}