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
153unsafe impl NSCoding for SCNMaterial {}
154
155unsafe impl NSCopying for SCNMaterial {}
156
157unsafe impl CopyingHelper for SCNMaterial {
158 type Result = Self;
159}
160
161unsafe impl NSObjectProtocol for SCNMaterial {}
162
163unsafe impl NSSecureCoding for SCNMaterial {}
164
165#[cfg(feature = "SCNAnimation")]
166unsafe impl SCNAnimatable for SCNMaterial {}
167
168#[cfg(feature = "SCNShadable")]
169unsafe impl SCNShadable for SCNMaterial {}
170
171impl SCNMaterial {
172 extern_methods!(
173 #[unsafe(method(material))]
175 #[unsafe(method_family = none)]
176 pub unsafe fn material() -> Retained<Self>;
177
178 #[unsafe(method(name))]
180 #[unsafe(method_family = none)]
181 pub unsafe fn name(&self) -> Option<Retained<NSString>>;
182
183 #[unsafe(method(setName:))]
185 #[unsafe(method_family = none)]
186 pub unsafe fn setName(&self, name: Option<&NSString>);
187
188 #[cfg(feature = "SCNMaterialProperty")]
189 #[unsafe(method(diffuse))]
193 #[unsafe(method_family = none)]
194 pub unsafe fn diffuse(&self) -> Retained<SCNMaterialProperty>;
195
196 #[cfg(feature = "SCNMaterialProperty")]
197 #[unsafe(method(ambient))]
201 #[unsafe(method_family = none)]
202 pub unsafe fn ambient(&self) -> Retained<SCNMaterialProperty>;
203
204 #[cfg(feature = "SCNMaterialProperty")]
205 #[unsafe(method(specular))]
209 #[unsafe(method_family = none)]
210 pub unsafe fn specular(&self) -> Retained<SCNMaterialProperty>;
211
212 #[cfg(feature = "SCNMaterialProperty")]
213 #[unsafe(method(emission))]
215 #[unsafe(method_family = none)]
216 pub unsafe fn emission(&self) -> Retained<SCNMaterialProperty>;
217
218 #[cfg(feature = "SCNMaterialProperty")]
219 #[unsafe(method(transparent))]
221 #[unsafe(method_family = none)]
222 pub unsafe fn transparent(&self) -> Retained<SCNMaterialProperty>;
223
224 #[cfg(feature = "SCNMaterialProperty")]
225 #[unsafe(method(reflective))]
227 #[unsafe(method_family = none)]
228 pub unsafe fn reflective(&self) -> Retained<SCNMaterialProperty>;
229
230 #[cfg(feature = "SCNMaterialProperty")]
231 #[unsafe(method(multiply))]
233 #[unsafe(method_family = none)]
234 pub unsafe fn multiply(&self) -> Retained<SCNMaterialProperty>;
235
236 #[cfg(feature = "SCNMaterialProperty")]
237 #[unsafe(method(normal))]
241 #[unsafe(method_family = none)]
242 pub unsafe fn normal(&self) -> Retained<SCNMaterialProperty>;
243
244 #[cfg(feature = "SCNMaterialProperty")]
245 #[unsafe(method(displacement))]
249 #[unsafe(method_family = none)]
250 pub unsafe fn displacement(&self) -> Retained<SCNMaterialProperty>;
251
252 #[cfg(feature = "SCNMaterialProperty")]
253 #[unsafe(method(ambientOcclusion))]
255 #[unsafe(method_family = none)]
256 pub unsafe fn ambientOcclusion(&self) -> Retained<SCNMaterialProperty>;
257
258 #[cfg(feature = "SCNMaterialProperty")]
259 #[unsafe(method(selfIllumination))]
261 #[unsafe(method_family = none)]
262 pub unsafe fn selfIllumination(&self) -> Retained<SCNMaterialProperty>;
263
264 #[cfg(feature = "SCNMaterialProperty")]
265 #[unsafe(method(metalness))]
267 #[unsafe(method_family = none)]
268 pub unsafe fn metalness(&self) -> Retained<SCNMaterialProperty>;
269
270 #[cfg(feature = "SCNMaterialProperty")]
271 #[unsafe(method(roughness))]
273 #[unsafe(method_family = none)]
274 pub unsafe fn roughness(&self) -> Retained<SCNMaterialProperty>;
275
276 #[cfg(feature = "SCNMaterialProperty")]
277 #[unsafe(method(clearCoat))]
279 #[unsafe(method_family = none)]
280 pub unsafe fn clearCoat(&self) -> Retained<SCNMaterialProperty>;
281
282 #[cfg(feature = "SCNMaterialProperty")]
283 #[unsafe(method(clearCoatRoughness))]
285 #[unsafe(method_family = none)]
286 pub unsafe fn clearCoatRoughness(&self) -> Retained<SCNMaterialProperty>;
287
288 #[cfg(feature = "SCNMaterialProperty")]
289 #[unsafe(method(clearCoatNormal))]
291 #[unsafe(method_family = none)]
292 pub unsafe fn clearCoatNormal(&self) -> Retained<SCNMaterialProperty>;
293
294 #[cfg(feature = "objc2-core-foundation")]
295 #[unsafe(method(shininess))]
297 #[unsafe(method_family = none)]
298 pub unsafe fn shininess(&self) -> CGFloat;
299
300 #[cfg(feature = "objc2-core-foundation")]
301 #[unsafe(method(setShininess:))]
303 #[unsafe(method_family = none)]
304 pub unsafe fn setShininess(&self, shininess: CGFloat);
305
306 #[cfg(feature = "objc2-core-foundation")]
307 #[unsafe(method(transparency))]
311 #[unsafe(method_family = none)]
312 pub unsafe fn transparency(&self) -> CGFloat;
313
314 #[cfg(feature = "objc2-core-foundation")]
315 #[unsafe(method(setTransparency:))]
317 #[unsafe(method_family = none)]
318 pub unsafe fn setTransparency(&self, transparency: CGFloat);
319
320 #[unsafe(method(lightingModelName))]
322 #[unsafe(method_family = none)]
323 pub unsafe fn lightingModelName(&self) -> Retained<SCNLightingModel>;
324
325 #[unsafe(method(setLightingModelName:))]
327 #[unsafe(method_family = none)]
328 pub unsafe fn setLightingModelName(&self, lighting_model_name: &SCNLightingModel);
329
330 #[unsafe(method(isLitPerPixel))]
332 #[unsafe(method_family = none)]
333 pub unsafe fn isLitPerPixel(&self) -> bool;
334
335 #[unsafe(method(setLitPerPixel:))]
337 #[unsafe(method_family = none)]
338 pub unsafe fn setLitPerPixel(&self, lit_per_pixel: bool);
339
340 #[unsafe(method(isDoubleSided))]
342 #[unsafe(method_family = none)]
343 pub unsafe fn isDoubleSided(&self) -> bool;
344
345 #[unsafe(method(setDoubleSided:))]
347 #[unsafe(method_family = none)]
348 pub unsafe fn setDoubleSided(&self, double_sided: bool);
349
350 #[unsafe(method(fillMode))]
352 #[unsafe(method_family = none)]
353 pub unsafe fn fillMode(&self) -> SCNFillMode;
354
355 #[unsafe(method(setFillMode:))]
357 #[unsafe(method_family = none)]
358 pub unsafe fn setFillMode(&self, fill_mode: SCNFillMode);
359
360 #[unsafe(method(cullMode))]
362 #[unsafe(method_family = none)]
363 pub unsafe fn cullMode(&self) -> SCNCullMode;
364
365 #[unsafe(method(setCullMode:))]
367 #[unsafe(method_family = none)]
368 pub unsafe fn setCullMode(&self, cull_mode: SCNCullMode);
369
370 #[unsafe(method(transparencyMode))]
372 #[unsafe(method_family = none)]
373 pub unsafe fn transparencyMode(&self) -> SCNTransparencyMode;
374
375 #[unsafe(method(setTransparencyMode:))]
377 #[unsafe(method_family = none)]
378 pub unsafe fn setTransparencyMode(&self, transparency_mode: SCNTransparencyMode);
379
380 #[unsafe(method(locksAmbientWithDiffuse))]
382 #[unsafe(method_family = none)]
383 pub unsafe fn locksAmbientWithDiffuse(&self) -> bool;
384
385 #[unsafe(method(setLocksAmbientWithDiffuse:))]
387 #[unsafe(method_family = none)]
388 pub unsafe fn setLocksAmbientWithDiffuse(&self, locks_ambient_with_diffuse: bool);
389
390 #[unsafe(method(writesToDepthBuffer))]
392 #[unsafe(method_family = none)]
393 pub unsafe fn writesToDepthBuffer(&self) -> bool;
394
395 #[unsafe(method(setWritesToDepthBuffer:))]
397 #[unsafe(method_family = none)]
398 pub unsafe fn setWritesToDepthBuffer(&self, writes_to_depth_buffer: bool);
399
400 #[cfg(feature = "SceneKitTypes")]
401 #[unsafe(method(colorBufferWriteMask))]
403 #[unsafe(method_family = none)]
404 pub unsafe fn colorBufferWriteMask(&self) -> SCNColorMask;
405
406 #[cfg(feature = "SceneKitTypes")]
407 #[unsafe(method(setColorBufferWriteMask:))]
409 #[unsafe(method_family = none)]
410 pub unsafe fn setColorBufferWriteMask(&self, color_buffer_write_mask: SCNColorMask);
411
412 #[unsafe(method(readsFromDepthBuffer))]
414 #[unsafe(method_family = none)]
415 pub unsafe fn readsFromDepthBuffer(&self) -> bool;
416
417 #[unsafe(method(setReadsFromDepthBuffer:))]
419 #[unsafe(method_family = none)]
420 pub unsafe fn setReadsFromDepthBuffer(&self, reads_from_depth_buffer: bool);
421
422 #[cfg(feature = "objc2-core-foundation")]
423 #[unsafe(method(fresnelExponent))]
427 #[unsafe(method_family = none)]
428 pub unsafe fn fresnelExponent(&self) -> CGFloat;
429
430 #[cfg(feature = "objc2-core-foundation")]
431 #[unsafe(method(setFresnelExponent:))]
433 #[unsafe(method_family = none)]
434 pub unsafe fn setFresnelExponent(&self, fresnel_exponent: CGFloat);
435
436 #[unsafe(method(blendMode))]
438 #[unsafe(method_family = none)]
439 pub unsafe fn blendMode(&self) -> SCNBlendMode;
440
441 #[unsafe(method(setBlendMode:))]
443 #[unsafe(method_family = none)]
444 pub unsafe fn setBlendMode(&self, blend_mode: SCNBlendMode);
445 );
446}
447
448impl SCNMaterial {
450 extern_methods!(
451 #[unsafe(method(init))]
452 #[unsafe(method_family = init)]
453 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
454
455 #[unsafe(method(new))]
456 #[unsafe(method_family = new)]
457 pub unsafe fn new() -> Retained<Self>;
458 );
459}