1use core::ffi::*;
4use core::ptr::NonNull;
5use objc2::__framework_prelude::*;
6#[cfg(feature = "objc2-app-kit")]
7#[cfg(target_os = "macos")]
8use objc2_app_kit::*;
9#[cfg(feature = "objc2-core-foundation")]
10use objc2_core_foundation::*;
11use objc2_foundation::*;
12#[cfg(feature = "objc2-quartz-core")]
13#[cfg(not(target_os = "watchos"))]
14use objc2_quartz_core::*;
15
16use crate::*;
17
18pub type SCNParticleProperty = NSString;
21
22extern "C" {
23 pub static SCNParticlePropertyPosition: &'static SCNParticleProperty;
25}
26
27extern "C" {
28 pub static SCNParticlePropertyAngle: &'static SCNParticleProperty;
30}
31
32extern "C" {
33 pub static SCNParticlePropertyRotationAxis: &'static SCNParticleProperty;
35}
36
37extern "C" {
38 pub static SCNParticlePropertyVelocity: &'static SCNParticleProperty;
40}
41
42extern "C" {
43 pub static SCNParticlePropertyAngularVelocity: &'static SCNParticleProperty;
45}
46
47extern "C" {
48 pub static SCNParticlePropertyLife: &'static SCNParticleProperty;
50}
51
52extern "C" {
53 pub static SCNParticlePropertyColor: &'static SCNParticleProperty;
55}
56
57extern "C" {
58 pub static SCNParticlePropertyOpacity: &'static SCNParticleProperty;
60}
61
62extern "C" {
63 pub static SCNParticlePropertySize: &'static SCNParticleProperty;
65}
66
67extern "C" {
68 pub static SCNParticlePropertyFrame: &'static SCNParticleProperty;
70}
71
72extern "C" {
73 pub static SCNParticlePropertyFrameRate: &'static SCNParticleProperty;
75}
76
77extern "C" {
78 pub static SCNParticlePropertyBounce: &'static SCNParticleProperty;
80}
81
82extern "C" {
83 pub static SCNParticlePropertyCharge: &'static SCNParticleProperty;
85}
86
87extern "C" {
88 pub static SCNParticlePropertyFriction: &'static SCNParticleProperty;
90}
91
92extern "C" {
93 pub static SCNParticlePropertyContactPoint: &'static SCNParticleProperty;
95}
96
97extern "C" {
98 pub static SCNParticlePropertyContactNormal: &'static SCNParticleProperty;
100}
101
102#[cfg(feature = "block2")]
131pub type SCNParticleEventBlock =
132 *mut block2::DynBlock<dyn Fn(NonNull<NonNull<c_void>>, NonNull<usize>, *mut u32, NSInteger)>;
133
134#[cfg(feature = "block2")]
163pub type SCNParticleModifierBlock = *mut block2::DynBlock<
164 dyn Fn(NonNull<NonNull<c_void>>, NonNull<usize>, NSInteger, NSInteger, c_float),
165>;
166
167#[repr(transparent)]
170#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
171pub struct SCNParticleSortingMode(pub NSInteger);
172impl SCNParticleSortingMode {
173 #[doc(alias = "SCNParticleSortingModeNone")]
174 pub const None: Self = Self(0);
175 #[doc(alias = "SCNParticleSortingModeProjectedDepth")]
176 pub const ProjectedDepth: Self = Self(1);
177 #[doc(alias = "SCNParticleSortingModeDistance")]
178 pub const Distance: Self = Self(2);
179 #[doc(alias = "SCNParticleSortingModeOldestFirst")]
180 pub const OldestFirst: Self = Self(3);
181 #[doc(alias = "SCNParticleSortingModeYoungestFirst")]
182 pub const YoungestFirst: Self = Self(4);
183}
184
185unsafe impl Encode for SCNParticleSortingMode {
186 const ENCODING: Encoding = NSInteger::ENCODING;
187}
188
189unsafe impl RefEncode for SCNParticleSortingMode {
190 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
191}
192
193#[repr(transparent)]
196#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
197pub struct SCNParticleBlendMode(pub NSInteger);
198impl SCNParticleBlendMode {
199 #[doc(alias = "SCNParticleBlendModeAdditive")]
200 pub const Additive: Self = Self(0);
201 #[doc(alias = "SCNParticleBlendModeSubtract")]
202 pub const Subtract: Self = Self(1);
203 #[doc(alias = "SCNParticleBlendModeMultiply")]
204 pub const Multiply: Self = Self(2);
205 #[doc(alias = "SCNParticleBlendModeScreen")]
206 pub const Screen: Self = Self(3);
207 #[doc(alias = "SCNParticleBlendModeAlpha")]
208 pub const Alpha: Self = Self(4);
209 #[doc(alias = "SCNParticleBlendModeReplace")]
210 pub const Replace: Self = Self(5);
211}
212
213unsafe impl Encode for SCNParticleBlendMode {
214 const ENCODING: Encoding = NSInteger::ENCODING;
215}
216
217unsafe impl RefEncode for SCNParticleBlendMode {
218 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
219}
220
221#[repr(transparent)]
224#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
225pub struct SCNParticleOrientationMode(pub NSInteger);
226impl SCNParticleOrientationMode {
227 #[doc(alias = "SCNParticleOrientationModeBillboardScreenAligned")]
228 pub const BillboardScreenAligned: Self = Self(0);
229 #[doc(alias = "SCNParticleOrientationModeBillboardViewAligned")]
230 pub const BillboardViewAligned: Self = Self(1);
231 #[doc(alias = "SCNParticleOrientationModeFree")]
232 pub const Free: Self = Self(2);
233 #[doc(alias = "SCNParticleOrientationModeBillboardYAligned")]
234 pub const BillboardYAligned: Self = Self(3);
235}
236
237unsafe impl Encode for SCNParticleOrientationMode {
238 const ENCODING: Encoding = NSInteger::ENCODING;
239}
240
241unsafe impl RefEncode for SCNParticleOrientationMode {
242 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
243}
244
245#[repr(transparent)]
248#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
249pub struct SCNParticleBirthLocation(pub NSInteger);
250impl SCNParticleBirthLocation {
251 #[doc(alias = "SCNParticleBirthLocationSurface")]
252 pub const Surface: Self = Self(0);
253 #[doc(alias = "SCNParticleBirthLocationVolume")]
254 pub const Volume: Self = Self(1);
255 #[doc(alias = "SCNParticleBirthLocationVertex")]
256 pub const Vertex: Self = Self(2);
257}
258
259unsafe impl Encode for SCNParticleBirthLocation {
260 const ENCODING: Encoding = NSInteger::ENCODING;
261}
262
263unsafe impl RefEncode for SCNParticleBirthLocation {
264 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
265}
266
267#[repr(transparent)]
270#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
271pub struct SCNParticleBirthDirection(pub NSInteger);
272impl SCNParticleBirthDirection {
273 #[doc(alias = "SCNParticleBirthDirectionConstant")]
274 pub const Constant: Self = Self(0);
275 #[doc(alias = "SCNParticleBirthDirectionSurfaceNormal")]
276 pub const SurfaceNormal: Self = Self(1);
277 #[doc(alias = "SCNParticleBirthDirectionRandom")]
278 pub const Random: Self = Self(2);
279}
280
281unsafe impl Encode for SCNParticleBirthDirection {
282 const ENCODING: Encoding = NSInteger::ENCODING;
283}
284
285unsafe impl RefEncode for SCNParticleBirthDirection {
286 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
287}
288
289#[repr(transparent)]
292#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
293pub struct SCNParticleImageSequenceAnimationMode(pub NSInteger);
294impl SCNParticleImageSequenceAnimationMode {
295 #[doc(alias = "SCNParticleImageSequenceAnimationModeRepeat")]
296 pub const Repeat: Self = Self(0);
297 #[doc(alias = "SCNParticleImageSequenceAnimationModeClamp")]
298 pub const Clamp: Self = Self(1);
299 #[doc(alias = "SCNParticleImageSequenceAnimationModeAutoReverse")]
300 pub const AutoReverse: Self = Self(2);
301}
302
303unsafe impl Encode for SCNParticleImageSequenceAnimationMode {
304 const ENCODING: Encoding = NSInteger::ENCODING;
305}
306
307unsafe impl RefEncode for SCNParticleImageSequenceAnimationMode {
308 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
309}
310
311#[repr(transparent)]
314#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
315pub struct SCNParticleInputMode(pub NSInteger);
316impl SCNParticleInputMode {
317 #[doc(alias = "SCNParticleInputModeOverLife")]
318 pub const OverLife: Self = Self(0);
319 #[doc(alias = "SCNParticleInputModeOverDistance")]
320 pub const OverDistance: Self = Self(1);
321 #[doc(alias = "SCNParticleInputModeOverOtherProperty")]
322 pub const OverOtherProperty: Self = Self(2);
323}
324
325unsafe impl Encode for SCNParticleInputMode {
326 const ENCODING: Encoding = NSInteger::ENCODING;
327}
328
329unsafe impl RefEncode for SCNParticleInputMode {
330 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
331}
332
333#[repr(transparent)]
336#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
337pub struct SCNParticleModifierStage(pub NSInteger);
338impl SCNParticleModifierStage {
339 #[doc(alias = "SCNParticleModifierStagePreDynamics")]
340 pub const PreDynamics: Self = Self(0);
341 #[doc(alias = "SCNParticleModifierStagePostDynamics")]
342 pub const PostDynamics: Self = Self(1);
343 #[doc(alias = "SCNParticleModifierStagePreCollision")]
344 pub const PreCollision: Self = Self(2);
345 #[doc(alias = "SCNParticleModifierStagePostCollision")]
346 pub const PostCollision: Self = Self(3);
347}
348
349unsafe impl Encode for SCNParticleModifierStage {
350 const ENCODING: Encoding = NSInteger::ENCODING;
351}
352
353unsafe impl RefEncode for SCNParticleModifierStage {
354 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
355}
356
357#[repr(transparent)]
360#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
361pub struct SCNParticleEvent(pub NSInteger);
362impl SCNParticleEvent {
363 #[doc(alias = "SCNParticleEventBirth")]
364 pub const Birth: Self = Self(0);
365 #[doc(alias = "SCNParticleEventDeath")]
366 pub const Death: Self = Self(1);
367 #[doc(alias = "SCNParticleEventCollision")]
368 pub const Collision: Self = Self(2);
369}
370
371unsafe impl Encode for SCNParticleEvent {
372 const ENCODING: Encoding = NSInteger::ENCODING;
373}
374
375unsafe impl RefEncode for SCNParticleEvent {
376 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
377}
378
379extern_class!(
380 #[unsafe(super(NSObject))]
384 #[derive(Debug, PartialEq, Eq, Hash)]
385 pub struct SCNParticlePropertyController;
386);
387
388extern_conformance!(
389 unsafe impl NSCoding for SCNParticlePropertyController {}
390);
391
392extern_conformance!(
393 unsafe impl NSCopying for SCNParticlePropertyController {}
394);
395
396unsafe impl CopyingHelper for SCNParticlePropertyController {
397 type Result = Self;
398}
399
400extern_conformance!(
401 unsafe impl NSObjectProtocol for SCNParticlePropertyController {}
402);
403
404extern_conformance!(
405 unsafe impl NSSecureCoding for SCNParticlePropertyController {}
406);
407
408impl SCNParticlePropertyController {
409 extern_methods!(
410 #[cfg(feature = "objc2-quartz-core")]
411 #[cfg(not(target_os = "watchos"))]
412 #[unsafe(method(controllerWithAnimation:))]
413 #[unsafe(method_family = none)]
414 pub unsafe fn controllerWithAnimation(animation: &CAAnimation) -> Retained<Self>;
415
416 #[cfg(feature = "objc2-quartz-core")]
417 #[cfg(not(target_os = "watchos"))]
418 #[unsafe(method(animation))]
419 #[unsafe(method_family = none)]
420 pub unsafe fn animation(&self) -> Retained<CAAnimation>;
421
422 #[cfg(feature = "objc2-quartz-core")]
423 #[cfg(not(target_os = "watchos"))]
424 #[unsafe(method(setAnimation:))]
426 #[unsafe(method_family = none)]
427 pub unsafe fn setAnimation(&self, animation: &CAAnimation);
428
429 #[unsafe(method(inputMode))]
430 #[unsafe(method_family = none)]
431 pub unsafe fn inputMode(&self) -> SCNParticleInputMode;
432
433 #[unsafe(method(setInputMode:))]
435 #[unsafe(method_family = none)]
436 pub unsafe fn setInputMode(&self, input_mode: SCNParticleInputMode);
437
438 #[cfg(feature = "objc2-core-foundation")]
439 #[unsafe(method(inputScale))]
440 #[unsafe(method_family = none)]
441 pub unsafe fn inputScale(&self) -> CGFloat;
442
443 #[cfg(feature = "objc2-core-foundation")]
444 #[unsafe(method(setInputScale:))]
446 #[unsafe(method_family = none)]
447 pub unsafe fn setInputScale(&self, input_scale: CGFloat);
448
449 #[cfg(feature = "objc2-core-foundation")]
450 #[unsafe(method(inputBias))]
451 #[unsafe(method_family = none)]
452 pub unsafe fn inputBias(&self) -> CGFloat;
453
454 #[cfg(feature = "objc2-core-foundation")]
455 #[unsafe(method(setInputBias:))]
457 #[unsafe(method_family = none)]
458 pub unsafe fn setInputBias(&self, input_bias: CGFloat);
459
460 #[cfg(feature = "SCNNode")]
461 #[unsafe(method(inputOrigin))]
462 #[unsafe(method_family = none)]
463 pub unsafe fn inputOrigin(&self) -> Option<Retained<SCNNode>>;
464
465 #[cfg(feature = "SCNNode")]
466 #[unsafe(method(setInputOrigin:))]
470 #[unsafe(method_family = none)]
471 pub unsafe fn setInputOrigin(&self, input_origin: Option<&SCNNode>);
472
473 #[unsafe(method(inputProperty))]
474 #[unsafe(method_family = none)]
475 pub unsafe fn inputProperty(&self) -> Option<Retained<SCNParticleProperty>>;
476
477 #[unsafe(method(setInputProperty:))]
481 #[unsafe(method_family = none)]
482 pub unsafe fn setInputProperty(&self, input_property: Option<&SCNParticleProperty>);
483 );
484}
485
486impl SCNParticlePropertyController {
488 extern_methods!(
489 #[unsafe(method(init))]
490 #[unsafe(method_family = init)]
491 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
492
493 #[unsafe(method(new))]
494 #[unsafe(method_family = new)]
495 pub unsafe fn new() -> Retained<Self>;
496 );
497}
498
499extern_class!(
500 #[unsafe(super(NSObject))]
504 #[derive(Debug, PartialEq, Eq, Hash)]
505 pub struct SCNParticleSystem;
506);
507
508extern_conformance!(
509 unsafe impl NSCoding for SCNParticleSystem {}
510);
511
512extern_conformance!(
513 unsafe impl NSCopying for SCNParticleSystem {}
514);
515
516unsafe impl CopyingHelper for SCNParticleSystem {
517 type Result = Self;
518}
519
520extern_conformance!(
521 unsafe impl NSObjectProtocol for SCNParticleSystem {}
522);
523
524extern_conformance!(
525 unsafe impl NSSecureCoding for SCNParticleSystem {}
526);
527
528#[cfg(feature = "SCNAnimation")]
529extern_conformance!(
530 unsafe impl SCNAnimatable for SCNParticleSystem {}
531);
532
533impl SCNParticleSystem {
534 extern_methods!(
535 #[unsafe(method(particleSystem))]
536 #[unsafe(method_family = none)]
537 pub unsafe fn particleSystem() -> Retained<Self>;
538
539 #[unsafe(method(particleSystemNamed:inDirectory:))]
540 #[unsafe(method_family = none)]
541 pub unsafe fn particleSystemNamed_inDirectory(
542 name: &NSString,
543 directory: Option<&NSString>,
544 ) -> Option<Retained<Self>>;
545
546 #[cfg(feature = "objc2-core-foundation")]
547 #[unsafe(method(emissionDuration))]
548 #[unsafe(method_family = none)]
549 pub unsafe fn emissionDuration(&self) -> CGFloat;
550
551 #[cfg(feature = "objc2-core-foundation")]
552 #[unsafe(method(setEmissionDuration:))]
554 #[unsafe(method_family = none)]
555 pub unsafe fn setEmissionDuration(&self, emission_duration: CGFloat);
556
557 #[cfg(feature = "objc2-core-foundation")]
558 #[unsafe(method(emissionDurationVariation))]
559 #[unsafe(method_family = none)]
560 pub unsafe fn emissionDurationVariation(&self) -> CGFloat;
561
562 #[cfg(feature = "objc2-core-foundation")]
563 #[unsafe(method(setEmissionDurationVariation:))]
565 #[unsafe(method_family = none)]
566 pub unsafe fn setEmissionDurationVariation(&self, emission_duration_variation: CGFloat);
567
568 #[cfg(feature = "objc2-core-foundation")]
569 #[unsafe(method(idleDuration))]
570 #[unsafe(method_family = none)]
571 pub unsafe fn idleDuration(&self) -> CGFloat;
572
573 #[cfg(feature = "objc2-core-foundation")]
574 #[unsafe(method(setIdleDuration:))]
576 #[unsafe(method_family = none)]
577 pub unsafe fn setIdleDuration(&self, idle_duration: CGFloat);
578
579 #[cfg(feature = "objc2-core-foundation")]
580 #[unsafe(method(idleDurationVariation))]
581 #[unsafe(method_family = none)]
582 pub unsafe fn idleDurationVariation(&self) -> CGFloat;
583
584 #[cfg(feature = "objc2-core-foundation")]
585 #[unsafe(method(setIdleDurationVariation:))]
587 #[unsafe(method_family = none)]
588 pub unsafe fn setIdleDurationVariation(&self, idle_duration_variation: CGFloat);
589
590 #[unsafe(method(loops))]
591 #[unsafe(method_family = none)]
592 pub unsafe fn loops(&self) -> bool;
593
594 #[unsafe(method(setLoops:))]
596 #[unsafe(method_family = none)]
597 pub unsafe fn setLoops(&self, loops: bool);
598
599 #[cfg(feature = "objc2-core-foundation")]
600 #[unsafe(method(birthRate))]
601 #[unsafe(method_family = none)]
602 pub unsafe fn birthRate(&self) -> CGFloat;
603
604 #[cfg(feature = "objc2-core-foundation")]
605 #[unsafe(method(setBirthRate:))]
607 #[unsafe(method_family = none)]
608 pub unsafe fn setBirthRate(&self, birth_rate: CGFloat);
609
610 #[cfg(feature = "objc2-core-foundation")]
611 #[unsafe(method(birthRateVariation))]
612 #[unsafe(method_family = none)]
613 pub unsafe fn birthRateVariation(&self) -> CGFloat;
614
615 #[cfg(feature = "objc2-core-foundation")]
616 #[unsafe(method(setBirthRateVariation:))]
618 #[unsafe(method_family = none)]
619 pub unsafe fn setBirthRateVariation(&self, birth_rate_variation: CGFloat);
620
621 #[cfg(feature = "objc2-core-foundation")]
622 #[unsafe(method(warmupDuration))]
623 #[unsafe(method_family = none)]
624 pub unsafe fn warmupDuration(&self) -> CGFloat;
625
626 #[cfg(feature = "objc2-core-foundation")]
627 #[unsafe(method(setWarmupDuration:))]
629 #[unsafe(method_family = none)]
630 pub unsafe fn setWarmupDuration(&self, warmup_duration: CGFloat);
631
632 #[cfg(feature = "SCNGeometry")]
633 #[unsafe(method(emitterShape))]
634 #[unsafe(method_family = none)]
635 pub unsafe fn emitterShape(&self) -> Option<Retained<SCNGeometry>>;
636
637 #[cfg(feature = "SCNGeometry")]
638 #[unsafe(method(setEmitterShape:))]
640 #[unsafe(method_family = none)]
641 pub unsafe fn setEmitterShape(&self, emitter_shape: Option<&SCNGeometry>);
642
643 #[unsafe(method(birthLocation))]
644 #[unsafe(method_family = none)]
645 pub unsafe fn birthLocation(&self) -> SCNParticleBirthLocation;
646
647 #[unsafe(method(setBirthLocation:))]
649 #[unsafe(method_family = none)]
650 pub unsafe fn setBirthLocation(&self, birth_location: SCNParticleBirthLocation);
651
652 #[unsafe(method(birthDirection))]
653 #[unsafe(method_family = none)]
654 pub unsafe fn birthDirection(&self) -> SCNParticleBirthDirection;
655
656 #[unsafe(method(setBirthDirection:))]
658 #[unsafe(method_family = none)]
659 pub unsafe fn setBirthDirection(&self, birth_direction: SCNParticleBirthDirection);
660
661 #[cfg(feature = "objc2-core-foundation")]
662 #[unsafe(method(spreadingAngle))]
663 #[unsafe(method_family = none)]
664 pub unsafe fn spreadingAngle(&self) -> CGFloat;
665
666 #[cfg(feature = "objc2-core-foundation")]
667 #[unsafe(method(setSpreadingAngle:))]
669 #[unsafe(method_family = none)]
670 pub unsafe fn setSpreadingAngle(&self, spreading_angle: CGFloat);
671
672 #[cfg(all(feature = "SceneKitTypes", feature = "objc2-core-foundation"))]
673 #[unsafe(method(emittingDirection))]
674 #[unsafe(method_family = none)]
675 pub unsafe fn emittingDirection(&self) -> SCNVector3;
676
677 #[cfg(all(feature = "SceneKitTypes", feature = "objc2-core-foundation"))]
678 #[unsafe(method(setEmittingDirection:))]
680 #[unsafe(method_family = none)]
681 pub unsafe fn setEmittingDirection(&self, emitting_direction: SCNVector3);
682
683 #[cfg(all(feature = "SceneKitTypes", feature = "objc2-core-foundation"))]
684 #[unsafe(method(orientationDirection))]
685 #[unsafe(method_family = none)]
686 pub unsafe fn orientationDirection(&self) -> SCNVector3;
687
688 #[cfg(all(feature = "SceneKitTypes", feature = "objc2-core-foundation"))]
689 #[unsafe(method(setOrientationDirection:))]
691 #[unsafe(method_family = none)]
692 pub unsafe fn setOrientationDirection(&self, orientation_direction: SCNVector3);
693
694 #[cfg(all(feature = "SceneKitTypes", feature = "objc2-core-foundation"))]
695 #[unsafe(method(acceleration))]
696 #[unsafe(method_family = none)]
697 pub unsafe fn acceleration(&self) -> SCNVector3;
698
699 #[cfg(all(feature = "SceneKitTypes", feature = "objc2-core-foundation"))]
700 #[unsafe(method(setAcceleration:))]
702 #[unsafe(method_family = none)]
703 pub unsafe fn setAcceleration(&self, acceleration: SCNVector3);
704
705 #[unsafe(method(isLocal))]
706 #[unsafe(method_family = none)]
707 pub unsafe fn isLocal(&self) -> bool;
708
709 #[unsafe(method(setLocal:))]
711 #[unsafe(method_family = none)]
712 pub unsafe fn setLocal(&self, local: bool);
713
714 #[cfg(feature = "objc2-core-foundation")]
715 #[unsafe(method(particleAngle))]
716 #[unsafe(method_family = none)]
717 pub unsafe fn particleAngle(&self) -> CGFloat;
718
719 #[cfg(feature = "objc2-core-foundation")]
720 #[unsafe(method(setParticleAngle:))]
722 #[unsafe(method_family = none)]
723 pub unsafe fn setParticleAngle(&self, particle_angle: CGFloat);
724
725 #[cfg(feature = "objc2-core-foundation")]
726 #[unsafe(method(particleAngleVariation))]
727 #[unsafe(method_family = none)]
728 pub unsafe fn particleAngleVariation(&self) -> CGFloat;
729
730 #[cfg(feature = "objc2-core-foundation")]
731 #[unsafe(method(setParticleAngleVariation:))]
733 #[unsafe(method_family = none)]
734 pub unsafe fn setParticleAngleVariation(&self, particle_angle_variation: CGFloat);
735
736 #[cfg(feature = "objc2-core-foundation")]
737 #[unsafe(method(particleVelocity))]
738 #[unsafe(method_family = none)]
739 pub unsafe fn particleVelocity(&self) -> CGFloat;
740
741 #[cfg(feature = "objc2-core-foundation")]
742 #[unsafe(method(setParticleVelocity:))]
744 #[unsafe(method_family = none)]
745 pub unsafe fn setParticleVelocity(&self, particle_velocity: CGFloat);
746
747 #[cfg(feature = "objc2-core-foundation")]
748 #[unsafe(method(particleVelocityVariation))]
749 #[unsafe(method_family = none)]
750 pub unsafe fn particleVelocityVariation(&self) -> CGFloat;
751
752 #[cfg(feature = "objc2-core-foundation")]
753 #[unsafe(method(setParticleVelocityVariation:))]
755 #[unsafe(method_family = none)]
756 pub unsafe fn setParticleVelocityVariation(&self, particle_velocity_variation: CGFloat);
757
758 #[cfg(feature = "objc2-core-foundation")]
759 #[unsafe(method(particleAngularVelocity))]
760 #[unsafe(method_family = none)]
761 pub unsafe fn particleAngularVelocity(&self) -> CGFloat;
762
763 #[cfg(feature = "objc2-core-foundation")]
764 #[unsafe(method(setParticleAngularVelocity:))]
766 #[unsafe(method_family = none)]
767 pub unsafe fn setParticleAngularVelocity(&self, particle_angular_velocity: CGFloat);
768
769 #[cfg(feature = "objc2-core-foundation")]
770 #[unsafe(method(particleAngularVelocityVariation))]
771 #[unsafe(method_family = none)]
772 pub unsafe fn particleAngularVelocityVariation(&self) -> CGFloat;
773
774 #[cfg(feature = "objc2-core-foundation")]
775 #[unsafe(method(setParticleAngularVelocityVariation:))]
777 #[unsafe(method_family = none)]
778 pub unsafe fn setParticleAngularVelocityVariation(
779 &self,
780 particle_angular_velocity_variation: CGFloat,
781 );
782
783 #[cfg(feature = "objc2-core-foundation")]
784 #[unsafe(method(particleLifeSpan))]
785 #[unsafe(method_family = none)]
786 pub unsafe fn particleLifeSpan(&self) -> CGFloat;
787
788 #[cfg(feature = "objc2-core-foundation")]
789 #[unsafe(method(setParticleLifeSpan:))]
791 #[unsafe(method_family = none)]
792 pub unsafe fn setParticleLifeSpan(&self, particle_life_span: CGFloat);
793
794 #[cfg(feature = "objc2-core-foundation")]
795 #[unsafe(method(particleLifeSpanVariation))]
796 #[unsafe(method_family = none)]
797 pub unsafe fn particleLifeSpanVariation(&self) -> CGFloat;
798
799 #[cfg(feature = "objc2-core-foundation")]
800 #[unsafe(method(setParticleLifeSpanVariation:))]
802 #[unsafe(method_family = none)]
803 pub unsafe fn setParticleLifeSpanVariation(&self, particle_life_span_variation: CGFloat);
804
805 #[unsafe(method(systemSpawnedOnDying))]
806 #[unsafe(method_family = none)]
807 pub unsafe fn systemSpawnedOnDying(&self) -> Option<Retained<SCNParticleSystem>>;
808
809 #[unsafe(method(setSystemSpawnedOnDying:))]
811 #[unsafe(method_family = none)]
812 pub unsafe fn setSystemSpawnedOnDying(
813 &self,
814 system_spawned_on_dying: Option<&SCNParticleSystem>,
815 );
816
817 #[unsafe(method(systemSpawnedOnCollision))]
818 #[unsafe(method_family = none)]
819 pub unsafe fn systemSpawnedOnCollision(&self) -> Option<Retained<SCNParticleSystem>>;
820
821 #[unsafe(method(setSystemSpawnedOnCollision:))]
823 #[unsafe(method_family = none)]
824 pub unsafe fn setSystemSpawnedOnCollision(
825 &self,
826 system_spawned_on_collision: Option<&SCNParticleSystem>,
827 );
828
829 #[unsafe(method(systemSpawnedOnLiving))]
830 #[unsafe(method_family = none)]
831 pub unsafe fn systemSpawnedOnLiving(&self) -> Option<Retained<SCNParticleSystem>>;
832
833 #[unsafe(method(setSystemSpawnedOnLiving:))]
835 #[unsafe(method_family = none)]
836 pub unsafe fn setSystemSpawnedOnLiving(
837 &self,
838 system_spawned_on_living: Option<&SCNParticleSystem>,
839 );
840
841 #[unsafe(method(particleImage))]
842 #[unsafe(method_family = none)]
843 pub unsafe fn particleImage(&self) -> Option<Retained<AnyObject>>;
844
845 #[unsafe(method(setParticleImage:))]
851 #[unsafe(method_family = none)]
852 pub unsafe fn setParticleImage(&self, particle_image: Option<&AnyObject>);
853
854 #[unsafe(method(imageSequenceColumnCount))]
855 #[unsafe(method_family = none)]
856 pub unsafe fn imageSequenceColumnCount(&self) -> NSUInteger;
857
858 #[unsafe(method(setImageSequenceColumnCount:))]
860 #[unsafe(method_family = none)]
861 pub unsafe fn setImageSequenceColumnCount(&self, image_sequence_column_count: NSUInteger);
862
863 #[unsafe(method(imageSequenceRowCount))]
864 #[unsafe(method_family = none)]
865 pub unsafe fn imageSequenceRowCount(&self) -> NSUInteger;
866
867 #[unsafe(method(setImageSequenceRowCount:))]
869 #[unsafe(method_family = none)]
870 pub unsafe fn setImageSequenceRowCount(&self, image_sequence_row_count: NSUInteger);
871
872 #[cfg(feature = "objc2-core-foundation")]
873 #[unsafe(method(imageSequenceInitialFrame))]
874 #[unsafe(method_family = none)]
875 pub unsafe fn imageSequenceInitialFrame(&self) -> CGFloat;
876
877 #[cfg(feature = "objc2-core-foundation")]
878 #[unsafe(method(setImageSequenceInitialFrame:))]
880 #[unsafe(method_family = none)]
881 pub unsafe fn setImageSequenceInitialFrame(&self, image_sequence_initial_frame: CGFloat);
882
883 #[cfg(feature = "objc2-core-foundation")]
884 #[unsafe(method(imageSequenceInitialFrameVariation))]
885 #[unsafe(method_family = none)]
886 pub unsafe fn imageSequenceInitialFrameVariation(&self) -> CGFloat;
887
888 #[cfg(feature = "objc2-core-foundation")]
889 #[unsafe(method(setImageSequenceInitialFrameVariation:))]
891 #[unsafe(method_family = none)]
892 pub unsafe fn setImageSequenceInitialFrameVariation(
893 &self,
894 image_sequence_initial_frame_variation: CGFloat,
895 );
896
897 #[cfg(feature = "objc2-core-foundation")]
898 #[unsafe(method(imageSequenceFrameRate))]
899 #[unsafe(method_family = none)]
900 pub unsafe fn imageSequenceFrameRate(&self) -> CGFloat;
901
902 #[cfg(feature = "objc2-core-foundation")]
903 #[unsafe(method(setImageSequenceFrameRate:))]
905 #[unsafe(method_family = none)]
906 pub unsafe fn setImageSequenceFrameRate(&self, image_sequence_frame_rate: CGFloat);
907
908 #[cfg(feature = "objc2-core-foundation")]
909 #[unsafe(method(imageSequenceFrameRateVariation))]
910 #[unsafe(method_family = none)]
911 pub unsafe fn imageSequenceFrameRateVariation(&self) -> CGFloat;
912
913 #[cfg(feature = "objc2-core-foundation")]
914 #[unsafe(method(setImageSequenceFrameRateVariation:))]
916 #[unsafe(method_family = none)]
917 pub unsafe fn setImageSequenceFrameRateVariation(
918 &self,
919 image_sequence_frame_rate_variation: CGFloat,
920 );
921
922 #[unsafe(method(imageSequenceAnimationMode))]
923 #[unsafe(method_family = none)]
924 pub unsafe fn imageSequenceAnimationMode(&self) -> SCNParticleImageSequenceAnimationMode;
925
926 #[unsafe(method(setImageSequenceAnimationMode:))]
928 #[unsafe(method_family = none)]
929 pub unsafe fn setImageSequenceAnimationMode(
930 &self,
931 image_sequence_animation_mode: SCNParticleImageSequenceAnimationMode,
932 );
933
934 #[cfg(feature = "objc2-app-kit")]
935 #[cfg(target_os = "macos")]
936 #[unsafe(method(particleColor))]
937 #[unsafe(method_family = none)]
938 pub unsafe fn particleColor(&self) -> Retained<NSColor>;
939
940 #[cfg(feature = "objc2-app-kit")]
941 #[cfg(target_os = "macos")]
942 #[unsafe(method(setParticleColor:))]
944 #[unsafe(method_family = none)]
945 pub unsafe fn setParticleColor(&self, particle_color: &NSColor);
946
947 #[cfg(all(feature = "SceneKitTypes", feature = "objc2-core-foundation"))]
948 #[unsafe(method(particleColorVariation))]
949 #[unsafe(method_family = none)]
950 pub unsafe fn particleColorVariation(&self) -> SCNVector4;
951
952 #[cfg(all(feature = "SceneKitTypes", feature = "objc2-core-foundation"))]
953 #[unsafe(method(setParticleColorVariation:))]
955 #[unsafe(method_family = none)]
956 pub unsafe fn setParticleColorVariation(&self, particle_color_variation: SCNVector4);
957
958 #[cfg(feature = "objc2-core-foundation")]
959 #[unsafe(method(particleSize))]
960 #[unsafe(method_family = none)]
961 pub unsafe fn particleSize(&self) -> CGFloat;
962
963 #[cfg(feature = "objc2-core-foundation")]
964 #[unsafe(method(setParticleSize:))]
966 #[unsafe(method_family = none)]
967 pub unsafe fn setParticleSize(&self, particle_size: CGFloat);
968
969 #[cfg(feature = "objc2-core-foundation")]
970 #[unsafe(method(particleSizeVariation))]
971 #[unsafe(method_family = none)]
972 pub unsafe fn particleSizeVariation(&self) -> CGFloat;
973
974 #[cfg(feature = "objc2-core-foundation")]
975 #[unsafe(method(setParticleSizeVariation:))]
977 #[unsafe(method_family = none)]
978 pub unsafe fn setParticleSizeVariation(&self, particle_size_variation: CGFloat);
979
980 #[cfg(feature = "objc2-core-foundation")]
981 #[unsafe(method(particleIntensity))]
982 #[unsafe(method_family = none)]
983 pub unsafe fn particleIntensity(&self) -> CGFloat;
984
985 #[cfg(feature = "objc2-core-foundation")]
986 #[unsafe(method(setParticleIntensity:))]
988 #[unsafe(method_family = none)]
989 pub unsafe fn setParticleIntensity(&self, particle_intensity: CGFloat);
990
991 #[cfg(feature = "objc2-core-foundation")]
992 #[unsafe(method(particleIntensityVariation))]
993 #[unsafe(method_family = none)]
994 pub unsafe fn particleIntensityVariation(&self) -> CGFloat;
995
996 #[cfg(feature = "objc2-core-foundation")]
997 #[unsafe(method(setParticleIntensityVariation:))]
999 #[unsafe(method_family = none)]
1000 pub unsafe fn setParticleIntensityVariation(&self, particle_intensity_variation: CGFloat);
1001
1002 #[unsafe(method(blendMode))]
1003 #[unsafe(method_family = none)]
1004 pub unsafe fn blendMode(&self) -> SCNParticleBlendMode;
1005
1006 #[unsafe(method(setBlendMode:))]
1008 #[unsafe(method_family = none)]
1009 pub unsafe fn setBlendMode(&self, blend_mode: SCNParticleBlendMode);
1010
1011 #[unsafe(method(isBlackPassEnabled))]
1012 #[unsafe(method_family = none)]
1013 pub unsafe fn isBlackPassEnabled(&self) -> bool;
1014
1015 #[unsafe(method(setBlackPassEnabled:))]
1017 #[unsafe(method_family = none)]
1018 pub unsafe fn setBlackPassEnabled(&self, black_pass_enabled: bool);
1019
1020 #[unsafe(method(orientationMode))]
1021 #[unsafe(method_family = none)]
1022 pub unsafe fn orientationMode(&self) -> SCNParticleOrientationMode;
1023
1024 #[unsafe(method(setOrientationMode:))]
1026 #[unsafe(method_family = none)]
1027 pub unsafe fn setOrientationMode(&self, orientation_mode: SCNParticleOrientationMode);
1028
1029 #[unsafe(method(sortingMode))]
1030 #[unsafe(method_family = none)]
1031 pub unsafe fn sortingMode(&self) -> SCNParticleSortingMode;
1032
1033 #[unsafe(method(setSortingMode:))]
1035 #[unsafe(method_family = none)]
1036 pub unsafe fn setSortingMode(&self, sorting_mode: SCNParticleSortingMode);
1037
1038 #[unsafe(method(isLightingEnabled))]
1039 #[unsafe(method_family = none)]
1040 pub unsafe fn isLightingEnabled(&self) -> bool;
1041
1042 #[unsafe(method(setLightingEnabled:))]
1044 #[unsafe(method_family = none)]
1045 pub unsafe fn setLightingEnabled(&self, lighting_enabled: bool);
1046
1047 #[unsafe(method(affectedByGravity))]
1048 #[unsafe(method_family = none)]
1049 pub unsafe fn affectedByGravity(&self) -> bool;
1050
1051 #[unsafe(method(setAffectedByGravity:))]
1053 #[unsafe(method_family = none)]
1054 pub unsafe fn setAffectedByGravity(&self, affected_by_gravity: bool);
1055
1056 #[unsafe(method(affectedByPhysicsFields))]
1057 #[unsafe(method_family = none)]
1058 pub unsafe fn affectedByPhysicsFields(&self) -> bool;
1059
1060 #[unsafe(method(setAffectedByPhysicsFields:))]
1062 #[unsafe(method_family = none)]
1063 pub unsafe fn setAffectedByPhysicsFields(&self, affected_by_physics_fields: bool);
1064
1065 #[unsafe(method(particleDiesOnCollision))]
1066 #[unsafe(method_family = none)]
1067 pub unsafe fn particleDiesOnCollision(&self) -> bool;
1068
1069 #[unsafe(method(setParticleDiesOnCollision:))]
1071 #[unsafe(method_family = none)]
1072 pub unsafe fn setParticleDiesOnCollision(&self, particle_dies_on_collision: bool);
1073
1074 #[cfg(feature = "SCNNode")]
1075 #[unsafe(method(colliderNodes))]
1076 #[unsafe(method_family = none)]
1077 pub unsafe fn colliderNodes(&self) -> Option<Retained<NSArray<SCNNode>>>;
1078
1079 #[cfg(feature = "SCNNode")]
1080 #[unsafe(method(setColliderNodes:))]
1084 #[unsafe(method_family = none)]
1085 pub unsafe fn setColliderNodes(&self, collider_nodes: Option<&NSArray<SCNNode>>);
1086
1087 #[cfg(feature = "objc2-core-foundation")]
1088 #[unsafe(method(particleMass))]
1089 #[unsafe(method_family = none)]
1090 pub unsafe fn particleMass(&self) -> CGFloat;
1091
1092 #[cfg(feature = "objc2-core-foundation")]
1093 #[unsafe(method(setParticleMass:))]
1095 #[unsafe(method_family = none)]
1096 pub unsafe fn setParticleMass(&self, particle_mass: CGFloat);
1097
1098 #[cfg(feature = "objc2-core-foundation")]
1099 #[unsafe(method(particleMassVariation))]
1100 #[unsafe(method_family = none)]
1101 pub unsafe fn particleMassVariation(&self) -> CGFloat;
1102
1103 #[cfg(feature = "objc2-core-foundation")]
1104 #[unsafe(method(setParticleMassVariation:))]
1106 #[unsafe(method_family = none)]
1107 pub unsafe fn setParticleMassVariation(&self, particle_mass_variation: CGFloat);
1108
1109 #[cfg(feature = "objc2-core-foundation")]
1110 #[unsafe(method(particleBounce))]
1111 #[unsafe(method_family = none)]
1112 pub unsafe fn particleBounce(&self) -> CGFloat;
1113
1114 #[cfg(feature = "objc2-core-foundation")]
1115 #[unsafe(method(setParticleBounce:))]
1117 #[unsafe(method_family = none)]
1118 pub unsafe fn setParticleBounce(&self, particle_bounce: CGFloat);
1119
1120 #[cfg(feature = "objc2-core-foundation")]
1121 #[unsafe(method(particleBounceVariation))]
1122 #[unsafe(method_family = none)]
1123 pub unsafe fn particleBounceVariation(&self) -> CGFloat;
1124
1125 #[cfg(feature = "objc2-core-foundation")]
1126 #[unsafe(method(setParticleBounceVariation:))]
1128 #[unsafe(method_family = none)]
1129 pub unsafe fn setParticleBounceVariation(&self, particle_bounce_variation: CGFloat);
1130
1131 #[cfg(feature = "objc2-core-foundation")]
1132 #[unsafe(method(particleFriction))]
1133 #[unsafe(method_family = none)]
1134 pub unsafe fn particleFriction(&self) -> CGFloat;
1135
1136 #[cfg(feature = "objc2-core-foundation")]
1137 #[unsafe(method(setParticleFriction:))]
1139 #[unsafe(method_family = none)]
1140 pub unsafe fn setParticleFriction(&self, particle_friction: CGFloat);
1141
1142 #[cfg(feature = "objc2-core-foundation")]
1143 #[unsafe(method(particleFrictionVariation))]
1144 #[unsafe(method_family = none)]
1145 pub unsafe fn particleFrictionVariation(&self) -> CGFloat;
1146
1147 #[cfg(feature = "objc2-core-foundation")]
1148 #[unsafe(method(setParticleFrictionVariation:))]
1150 #[unsafe(method_family = none)]
1151 pub unsafe fn setParticleFrictionVariation(&self, particle_friction_variation: CGFloat);
1152
1153 #[cfg(feature = "objc2-core-foundation")]
1154 #[unsafe(method(particleCharge))]
1155 #[unsafe(method_family = none)]
1156 pub unsafe fn particleCharge(&self) -> CGFloat;
1157
1158 #[cfg(feature = "objc2-core-foundation")]
1159 #[unsafe(method(setParticleCharge:))]
1161 #[unsafe(method_family = none)]
1162 pub unsafe fn setParticleCharge(&self, particle_charge: CGFloat);
1163
1164 #[cfg(feature = "objc2-core-foundation")]
1165 #[unsafe(method(particleChargeVariation))]
1166 #[unsafe(method_family = none)]
1167 pub unsafe fn particleChargeVariation(&self) -> CGFloat;
1168
1169 #[cfg(feature = "objc2-core-foundation")]
1170 #[unsafe(method(setParticleChargeVariation:))]
1172 #[unsafe(method_family = none)]
1173 pub unsafe fn setParticleChargeVariation(&self, particle_charge_variation: CGFloat);
1174
1175 #[cfg(feature = "objc2-core-foundation")]
1176 #[unsafe(method(dampingFactor))]
1177 #[unsafe(method_family = none)]
1178 pub unsafe fn dampingFactor(&self) -> CGFloat;
1179
1180 #[cfg(feature = "objc2-core-foundation")]
1181 #[unsafe(method(setDampingFactor:))]
1183 #[unsafe(method_family = none)]
1184 pub unsafe fn setDampingFactor(&self, damping_factor: CGFloat);
1185
1186 #[cfg(feature = "objc2-core-foundation")]
1187 #[unsafe(method(speedFactor))]
1188 #[unsafe(method_family = none)]
1189 pub unsafe fn speedFactor(&self) -> CGFloat;
1190
1191 #[cfg(feature = "objc2-core-foundation")]
1192 #[unsafe(method(setSpeedFactor:))]
1194 #[unsafe(method_family = none)]
1195 pub unsafe fn setSpeedFactor(&self, speed_factor: CGFloat);
1196
1197 #[cfg(feature = "objc2-core-foundation")]
1198 #[unsafe(method(stretchFactor))]
1199 #[unsafe(method_family = none)]
1200 pub unsafe fn stretchFactor(&self) -> CGFloat;
1201
1202 #[cfg(feature = "objc2-core-foundation")]
1203 #[unsafe(method(setStretchFactor:))]
1205 #[unsafe(method_family = none)]
1206 pub unsafe fn setStretchFactor(&self, stretch_factor: CGFloat);
1207
1208 #[cfg(feature = "objc2-core-foundation")]
1209 #[unsafe(method(fresnelExponent))]
1210 #[unsafe(method_family = none)]
1211 pub unsafe fn fresnelExponent(&self) -> CGFloat;
1212
1213 #[cfg(feature = "objc2-core-foundation")]
1214 #[unsafe(method(setFresnelExponent:))]
1216 #[unsafe(method_family = none)]
1217 pub unsafe fn setFresnelExponent(&self, fresnel_exponent: CGFloat);
1218
1219 #[unsafe(method(writesToDepthBuffer))]
1221 #[unsafe(method_family = none)]
1222 pub unsafe fn writesToDepthBuffer(&self) -> bool;
1223
1224 #[unsafe(method(setWritesToDepthBuffer:))]
1226 #[unsafe(method_family = none)]
1227 pub unsafe fn setWritesToDepthBuffer(&self, writes_to_depth_buffer: bool);
1228
1229 #[unsafe(method(propertyControllers))]
1230 #[unsafe(method_family = none)]
1231 pub unsafe fn propertyControllers(
1232 &self,
1233 ) -> Option<Retained<NSDictionary<SCNParticleProperty, SCNParticlePropertyController>>>;
1234
1235 #[unsafe(method(setPropertyControllers:))]
1239 #[unsafe(method_family = none)]
1240 pub unsafe fn setPropertyControllers(
1241 &self,
1242 property_controllers: Option<
1243 &NSDictionary<SCNParticleProperty, SCNParticlePropertyController>,
1244 >,
1245 );
1246
1247 #[unsafe(method(reset))]
1248 #[unsafe(method_family = none)]
1249 pub unsafe fn reset(&self);
1250
1251 #[cfg(feature = "block2")]
1252 #[unsafe(method(handleEvent:forProperties:withBlock:))]
1256 #[unsafe(method_family = none)]
1257 pub unsafe fn handleEvent_forProperties_withBlock(
1258 &self,
1259 event: SCNParticleEvent,
1260 properties: &NSArray<SCNParticleProperty>,
1261 block: SCNParticleEventBlock,
1262 );
1263
1264 #[cfg(feature = "block2")]
1265 #[unsafe(method(addModifierForProperties:atStage:withBlock:))]
1269 #[unsafe(method_family = none)]
1270 pub unsafe fn addModifierForProperties_atStage_withBlock(
1271 &self,
1272 properties: &NSArray<SCNParticleProperty>,
1273 stage: SCNParticleModifierStage,
1274 block: SCNParticleModifierBlock,
1275 );
1276
1277 #[unsafe(method(removeModifiersOfStage:))]
1278 #[unsafe(method_family = none)]
1279 pub unsafe fn removeModifiersOfStage(&self, stage: SCNParticleModifierStage);
1280
1281 #[unsafe(method(removeAllModifiers))]
1282 #[unsafe(method_family = none)]
1283 pub unsafe fn removeAllModifiers(&self);
1284 );
1285}
1286
1287impl SCNParticleSystem {
1289 extern_methods!(
1290 #[unsafe(method(init))]
1291 #[unsafe(method_family = init)]
1292 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
1293
1294 #[unsafe(method(new))]
1295 #[unsafe(method_family = new)]
1296 pub unsafe fn new() -> Retained<Self>;
1297 );
1298}
1299
1300#[cfg(feature = "SCNNode")]
1302impl SCNNode {
1303 extern_methods!(
1304 #[unsafe(method(addParticleSystem:))]
1305 #[unsafe(method_family = none)]
1306 pub unsafe fn addParticleSystem(&self, system: &SCNParticleSystem);
1307
1308 #[unsafe(method(removeAllParticleSystems))]
1309 #[unsafe(method_family = none)]
1310 pub unsafe fn removeAllParticleSystems(&self);
1311
1312 #[unsafe(method(removeParticleSystem:))]
1313 #[unsafe(method_family = none)]
1314 pub unsafe fn removeParticleSystem(&self, system: &SCNParticleSystem);
1315
1316 #[unsafe(method(particleSystems))]
1317 #[unsafe(method_family = none)]
1318 pub unsafe fn particleSystems(&self) -> Option<Retained<NSArray<SCNParticleSystem>>>;
1319 );
1320}
1321
1322#[cfg(feature = "SCNScene")]
1324impl SCNScene {
1325 extern_methods!(
1326 #[cfg(all(feature = "SceneKitTypes", feature = "objc2-quartz-core"))]
1327 #[cfg(not(target_os = "watchos"))]
1328 #[unsafe(method(addParticleSystem:withTransform:))]
1329 #[unsafe(method_family = none)]
1330 pub unsafe fn addParticleSystem_withTransform(
1331 &self,
1332 system: &SCNParticleSystem,
1333 transform: SCNMatrix4,
1334 );
1335
1336 #[unsafe(method(removeAllParticleSystems))]
1337 #[unsafe(method_family = none)]
1338 pub unsafe fn removeAllParticleSystems(&self);
1339
1340 #[unsafe(method(removeParticleSystem:))]
1341 #[unsafe(method_family = none)]
1342 pub unsafe fn removeParticleSystem(&self, system: &SCNParticleSystem);
1343
1344 #[unsafe(method(particleSystems))]
1345 #[unsafe(method_family = none)]
1346 pub unsafe fn particleSystems(&self) -> Option<Retained<NSArray<SCNParticleSystem>>>;
1347 );
1348}