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:))]
469 #[unsafe(method_family = none)]
470 pub unsafe fn setInputOrigin(&self, input_origin: Option<&SCNNode>);
471
472 #[unsafe(method(inputProperty))]
473 #[unsafe(method_family = none)]
474 pub unsafe fn inputProperty(&self) -> Option<Retained<SCNParticleProperty>>;
475
476 #[unsafe(method(setInputProperty:))]
478 #[unsafe(method_family = none)]
479 pub unsafe fn setInputProperty(&self, input_property: Option<&SCNParticleProperty>);
480 );
481}
482
483impl SCNParticlePropertyController {
485 extern_methods!(
486 #[unsafe(method(init))]
487 #[unsafe(method_family = init)]
488 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
489
490 #[unsafe(method(new))]
491 #[unsafe(method_family = new)]
492 pub unsafe fn new() -> Retained<Self>;
493 );
494}
495
496extern_class!(
497 #[unsafe(super(NSObject))]
501 #[derive(Debug, PartialEq, Eq, Hash)]
502 pub struct SCNParticleSystem;
503);
504
505extern_conformance!(
506 unsafe impl NSCoding for SCNParticleSystem {}
507);
508
509extern_conformance!(
510 unsafe impl NSCopying for SCNParticleSystem {}
511);
512
513unsafe impl CopyingHelper for SCNParticleSystem {
514 type Result = Self;
515}
516
517extern_conformance!(
518 unsafe impl NSObjectProtocol for SCNParticleSystem {}
519);
520
521extern_conformance!(
522 unsafe impl NSSecureCoding for SCNParticleSystem {}
523);
524
525#[cfg(feature = "SCNAnimation")]
526extern_conformance!(
527 unsafe impl SCNAnimatable for SCNParticleSystem {}
528);
529
530impl SCNParticleSystem {
531 extern_methods!(
532 #[unsafe(method(particleSystem))]
533 #[unsafe(method_family = none)]
534 pub unsafe fn particleSystem() -> Retained<Self>;
535
536 #[unsafe(method(particleSystemNamed:inDirectory:))]
537 #[unsafe(method_family = none)]
538 pub unsafe fn particleSystemNamed_inDirectory(
539 name: &NSString,
540 directory: Option<&NSString>,
541 ) -> Option<Retained<Self>>;
542
543 #[cfg(feature = "objc2-core-foundation")]
544 #[unsafe(method(emissionDuration))]
545 #[unsafe(method_family = none)]
546 pub unsafe fn emissionDuration(&self) -> CGFloat;
547
548 #[cfg(feature = "objc2-core-foundation")]
549 #[unsafe(method(setEmissionDuration:))]
551 #[unsafe(method_family = none)]
552 pub unsafe fn setEmissionDuration(&self, emission_duration: CGFloat);
553
554 #[cfg(feature = "objc2-core-foundation")]
555 #[unsafe(method(emissionDurationVariation))]
556 #[unsafe(method_family = none)]
557 pub unsafe fn emissionDurationVariation(&self) -> CGFloat;
558
559 #[cfg(feature = "objc2-core-foundation")]
560 #[unsafe(method(setEmissionDurationVariation:))]
562 #[unsafe(method_family = none)]
563 pub unsafe fn setEmissionDurationVariation(&self, emission_duration_variation: CGFloat);
564
565 #[cfg(feature = "objc2-core-foundation")]
566 #[unsafe(method(idleDuration))]
567 #[unsafe(method_family = none)]
568 pub unsafe fn idleDuration(&self) -> CGFloat;
569
570 #[cfg(feature = "objc2-core-foundation")]
571 #[unsafe(method(setIdleDuration:))]
573 #[unsafe(method_family = none)]
574 pub unsafe fn setIdleDuration(&self, idle_duration: CGFloat);
575
576 #[cfg(feature = "objc2-core-foundation")]
577 #[unsafe(method(idleDurationVariation))]
578 #[unsafe(method_family = none)]
579 pub unsafe fn idleDurationVariation(&self) -> CGFloat;
580
581 #[cfg(feature = "objc2-core-foundation")]
582 #[unsafe(method(setIdleDurationVariation:))]
584 #[unsafe(method_family = none)]
585 pub unsafe fn setIdleDurationVariation(&self, idle_duration_variation: CGFloat);
586
587 #[unsafe(method(loops))]
588 #[unsafe(method_family = none)]
589 pub unsafe fn loops(&self) -> bool;
590
591 #[unsafe(method(setLoops:))]
593 #[unsafe(method_family = none)]
594 pub unsafe fn setLoops(&self, loops: bool);
595
596 #[cfg(feature = "objc2-core-foundation")]
597 #[unsafe(method(birthRate))]
598 #[unsafe(method_family = none)]
599 pub unsafe fn birthRate(&self) -> CGFloat;
600
601 #[cfg(feature = "objc2-core-foundation")]
602 #[unsafe(method(setBirthRate:))]
604 #[unsafe(method_family = none)]
605 pub unsafe fn setBirthRate(&self, birth_rate: CGFloat);
606
607 #[cfg(feature = "objc2-core-foundation")]
608 #[unsafe(method(birthRateVariation))]
609 #[unsafe(method_family = none)]
610 pub unsafe fn birthRateVariation(&self) -> CGFloat;
611
612 #[cfg(feature = "objc2-core-foundation")]
613 #[unsafe(method(setBirthRateVariation:))]
615 #[unsafe(method_family = none)]
616 pub unsafe fn setBirthRateVariation(&self, birth_rate_variation: CGFloat);
617
618 #[cfg(feature = "objc2-core-foundation")]
619 #[unsafe(method(warmupDuration))]
620 #[unsafe(method_family = none)]
621 pub unsafe fn warmupDuration(&self) -> CGFloat;
622
623 #[cfg(feature = "objc2-core-foundation")]
624 #[unsafe(method(setWarmupDuration:))]
626 #[unsafe(method_family = none)]
627 pub unsafe fn setWarmupDuration(&self, warmup_duration: CGFloat);
628
629 #[cfg(feature = "SCNGeometry")]
630 #[unsafe(method(emitterShape))]
631 #[unsafe(method_family = none)]
632 pub unsafe fn emitterShape(&self) -> Option<Retained<SCNGeometry>>;
633
634 #[cfg(feature = "SCNGeometry")]
635 #[unsafe(method(setEmitterShape:))]
637 #[unsafe(method_family = none)]
638 pub unsafe fn setEmitterShape(&self, emitter_shape: Option<&SCNGeometry>);
639
640 #[unsafe(method(birthLocation))]
641 #[unsafe(method_family = none)]
642 pub unsafe fn birthLocation(&self) -> SCNParticleBirthLocation;
643
644 #[unsafe(method(setBirthLocation:))]
646 #[unsafe(method_family = none)]
647 pub unsafe fn setBirthLocation(&self, birth_location: SCNParticleBirthLocation);
648
649 #[unsafe(method(birthDirection))]
650 #[unsafe(method_family = none)]
651 pub unsafe fn birthDirection(&self) -> SCNParticleBirthDirection;
652
653 #[unsafe(method(setBirthDirection:))]
655 #[unsafe(method_family = none)]
656 pub unsafe fn setBirthDirection(&self, birth_direction: SCNParticleBirthDirection);
657
658 #[cfg(feature = "objc2-core-foundation")]
659 #[unsafe(method(spreadingAngle))]
660 #[unsafe(method_family = none)]
661 pub unsafe fn spreadingAngle(&self) -> CGFloat;
662
663 #[cfg(feature = "objc2-core-foundation")]
664 #[unsafe(method(setSpreadingAngle:))]
666 #[unsafe(method_family = none)]
667 pub unsafe fn setSpreadingAngle(&self, spreading_angle: CGFloat);
668
669 #[cfg(all(feature = "SceneKitTypes", feature = "objc2-core-foundation"))]
670 #[unsafe(method(emittingDirection))]
671 #[unsafe(method_family = none)]
672 pub unsafe fn emittingDirection(&self) -> SCNVector3;
673
674 #[cfg(all(feature = "SceneKitTypes", feature = "objc2-core-foundation"))]
675 #[unsafe(method(setEmittingDirection:))]
677 #[unsafe(method_family = none)]
678 pub unsafe fn setEmittingDirection(&self, emitting_direction: SCNVector3);
679
680 #[cfg(all(feature = "SceneKitTypes", feature = "objc2-core-foundation"))]
681 #[unsafe(method(orientationDirection))]
682 #[unsafe(method_family = none)]
683 pub unsafe fn orientationDirection(&self) -> SCNVector3;
684
685 #[cfg(all(feature = "SceneKitTypes", feature = "objc2-core-foundation"))]
686 #[unsafe(method(setOrientationDirection:))]
688 #[unsafe(method_family = none)]
689 pub unsafe fn setOrientationDirection(&self, orientation_direction: SCNVector3);
690
691 #[cfg(all(feature = "SceneKitTypes", feature = "objc2-core-foundation"))]
692 #[unsafe(method(acceleration))]
693 #[unsafe(method_family = none)]
694 pub unsafe fn acceleration(&self) -> SCNVector3;
695
696 #[cfg(all(feature = "SceneKitTypes", feature = "objc2-core-foundation"))]
697 #[unsafe(method(setAcceleration:))]
699 #[unsafe(method_family = none)]
700 pub unsafe fn setAcceleration(&self, acceleration: SCNVector3);
701
702 #[unsafe(method(isLocal))]
703 #[unsafe(method_family = none)]
704 pub unsafe fn isLocal(&self) -> bool;
705
706 #[unsafe(method(setLocal:))]
708 #[unsafe(method_family = none)]
709 pub unsafe fn setLocal(&self, local: bool);
710
711 #[cfg(feature = "objc2-core-foundation")]
712 #[unsafe(method(particleAngle))]
713 #[unsafe(method_family = none)]
714 pub unsafe fn particleAngle(&self) -> CGFloat;
715
716 #[cfg(feature = "objc2-core-foundation")]
717 #[unsafe(method(setParticleAngle:))]
719 #[unsafe(method_family = none)]
720 pub unsafe fn setParticleAngle(&self, particle_angle: CGFloat);
721
722 #[cfg(feature = "objc2-core-foundation")]
723 #[unsafe(method(particleAngleVariation))]
724 #[unsafe(method_family = none)]
725 pub unsafe fn particleAngleVariation(&self) -> CGFloat;
726
727 #[cfg(feature = "objc2-core-foundation")]
728 #[unsafe(method(setParticleAngleVariation:))]
730 #[unsafe(method_family = none)]
731 pub unsafe fn setParticleAngleVariation(&self, particle_angle_variation: CGFloat);
732
733 #[cfg(feature = "objc2-core-foundation")]
734 #[unsafe(method(particleVelocity))]
735 #[unsafe(method_family = none)]
736 pub unsafe fn particleVelocity(&self) -> CGFloat;
737
738 #[cfg(feature = "objc2-core-foundation")]
739 #[unsafe(method(setParticleVelocity:))]
741 #[unsafe(method_family = none)]
742 pub unsafe fn setParticleVelocity(&self, particle_velocity: CGFloat);
743
744 #[cfg(feature = "objc2-core-foundation")]
745 #[unsafe(method(particleVelocityVariation))]
746 #[unsafe(method_family = none)]
747 pub unsafe fn particleVelocityVariation(&self) -> CGFloat;
748
749 #[cfg(feature = "objc2-core-foundation")]
750 #[unsafe(method(setParticleVelocityVariation:))]
752 #[unsafe(method_family = none)]
753 pub unsafe fn setParticleVelocityVariation(&self, particle_velocity_variation: CGFloat);
754
755 #[cfg(feature = "objc2-core-foundation")]
756 #[unsafe(method(particleAngularVelocity))]
757 #[unsafe(method_family = none)]
758 pub unsafe fn particleAngularVelocity(&self) -> CGFloat;
759
760 #[cfg(feature = "objc2-core-foundation")]
761 #[unsafe(method(setParticleAngularVelocity:))]
763 #[unsafe(method_family = none)]
764 pub unsafe fn setParticleAngularVelocity(&self, particle_angular_velocity: CGFloat);
765
766 #[cfg(feature = "objc2-core-foundation")]
767 #[unsafe(method(particleAngularVelocityVariation))]
768 #[unsafe(method_family = none)]
769 pub unsafe fn particleAngularVelocityVariation(&self) -> CGFloat;
770
771 #[cfg(feature = "objc2-core-foundation")]
772 #[unsafe(method(setParticleAngularVelocityVariation:))]
774 #[unsafe(method_family = none)]
775 pub unsafe fn setParticleAngularVelocityVariation(
776 &self,
777 particle_angular_velocity_variation: CGFloat,
778 );
779
780 #[cfg(feature = "objc2-core-foundation")]
781 #[unsafe(method(particleLifeSpan))]
782 #[unsafe(method_family = none)]
783 pub unsafe fn particleLifeSpan(&self) -> CGFloat;
784
785 #[cfg(feature = "objc2-core-foundation")]
786 #[unsafe(method(setParticleLifeSpan:))]
788 #[unsafe(method_family = none)]
789 pub unsafe fn setParticleLifeSpan(&self, particle_life_span: CGFloat);
790
791 #[cfg(feature = "objc2-core-foundation")]
792 #[unsafe(method(particleLifeSpanVariation))]
793 #[unsafe(method_family = none)]
794 pub unsafe fn particleLifeSpanVariation(&self) -> CGFloat;
795
796 #[cfg(feature = "objc2-core-foundation")]
797 #[unsafe(method(setParticleLifeSpanVariation:))]
799 #[unsafe(method_family = none)]
800 pub unsafe fn setParticleLifeSpanVariation(&self, particle_life_span_variation: CGFloat);
801
802 #[unsafe(method(systemSpawnedOnDying))]
803 #[unsafe(method_family = none)]
804 pub unsafe fn systemSpawnedOnDying(&self) -> Option<Retained<SCNParticleSystem>>;
805
806 #[unsafe(method(setSystemSpawnedOnDying:))]
808 #[unsafe(method_family = none)]
809 pub unsafe fn setSystemSpawnedOnDying(
810 &self,
811 system_spawned_on_dying: Option<&SCNParticleSystem>,
812 );
813
814 #[unsafe(method(systemSpawnedOnCollision))]
815 #[unsafe(method_family = none)]
816 pub unsafe fn systemSpawnedOnCollision(&self) -> Option<Retained<SCNParticleSystem>>;
817
818 #[unsafe(method(setSystemSpawnedOnCollision:))]
820 #[unsafe(method_family = none)]
821 pub unsafe fn setSystemSpawnedOnCollision(
822 &self,
823 system_spawned_on_collision: Option<&SCNParticleSystem>,
824 );
825
826 #[unsafe(method(systemSpawnedOnLiving))]
827 #[unsafe(method_family = none)]
828 pub unsafe fn systemSpawnedOnLiving(&self) -> Option<Retained<SCNParticleSystem>>;
829
830 #[unsafe(method(setSystemSpawnedOnLiving:))]
832 #[unsafe(method_family = none)]
833 pub unsafe fn setSystemSpawnedOnLiving(
834 &self,
835 system_spawned_on_living: Option<&SCNParticleSystem>,
836 );
837
838 #[unsafe(method(particleImage))]
839 #[unsafe(method_family = none)]
840 pub unsafe fn particleImage(&self) -> Option<Retained<AnyObject>>;
841
842 #[unsafe(method(setParticleImage:))]
844 #[unsafe(method_family = none)]
845 pub unsafe fn setParticleImage(&self, particle_image: Option<&AnyObject>);
846
847 #[unsafe(method(imageSequenceColumnCount))]
848 #[unsafe(method_family = none)]
849 pub unsafe fn imageSequenceColumnCount(&self) -> NSUInteger;
850
851 #[unsafe(method(setImageSequenceColumnCount:))]
853 #[unsafe(method_family = none)]
854 pub unsafe fn setImageSequenceColumnCount(&self, image_sequence_column_count: NSUInteger);
855
856 #[unsafe(method(imageSequenceRowCount))]
857 #[unsafe(method_family = none)]
858 pub unsafe fn imageSequenceRowCount(&self) -> NSUInteger;
859
860 #[unsafe(method(setImageSequenceRowCount:))]
862 #[unsafe(method_family = none)]
863 pub unsafe fn setImageSequenceRowCount(&self, image_sequence_row_count: NSUInteger);
864
865 #[cfg(feature = "objc2-core-foundation")]
866 #[unsafe(method(imageSequenceInitialFrame))]
867 #[unsafe(method_family = none)]
868 pub unsafe fn imageSequenceInitialFrame(&self) -> CGFloat;
869
870 #[cfg(feature = "objc2-core-foundation")]
871 #[unsafe(method(setImageSequenceInitialFrame:))]
873 #[unsafe(method_family = none)]
874 pub unsafe fn setImageSequenceInitialFrame(&self, image_sequence_initial_frame: CGFloat);
875
876 #[cfg(feature = "objc2-core-foundation")]
877 #[unsafe(method(imageSequenceInitialFrameVariation))]
878 #[unsafe(method_family = none)]
879 pub unsafe fn imageSequenceInitialFrameVariation(&self) -> CGFloat;
880
881 #[cfg(feature = "objc2-core-foundation")]
882 #[unsafe(method(setImageSequenceInitialFrameVariation:))]
884 #[unsafe(method_family = none)]
885 pub unsafe fn setImageSequenceInitialFrameVariation(
886 &self,
887 image_sequence_initial_frame_variation: CGFloat,
888 );
889
890 #[cfg(feature = "objc2-core-foundation")]
891 #[unsafe(method(imageSequenceFrameRate))]
892 #[unsafe(method_family = none)]
893 pub unsafe fn imageSequenceFrameRate(&self) -> CGFloat;
894
895 #[cfg(feature = "objc2-core-foundation")]
896 #[unsafe(method(setImageSequenceFrameRate:))]
898 #[unsafe(method_family = none)]
899 pub unsafe fn setImageSequenceFrameRate(&self, image_sequence_frame_rate: CGFloat);
900
901 #[cfg(feature = "objc2-core-foundation")]
902 #[unsafe(method(imageSequenceFrameRateVariation))]
903 #[unsafe(method_family = none)]
904 pub unsafe fn imageSequenceFrameRateVariation(&self) -> CGFloat;
905
906 #[cfg(feature = "objc2-core-foundation")]
907 #[unsafe(method(setImageSequenceFrameRateVariation:))]
909 #[unsafe(method_family = none)]
910 pub unsafe fn setImageSequenceFrameRateVariation(
911 &self,
912 image_sequence_frame_rate_variation: CGFloat,
913 );
914
915 #[unsafe(method(imageSequenceAnimationMode))]
916 #[unsafe(method_family = none)]
917 pub unsafe fn imageSequenceAnimationMode(&self) -> SCNParticleImageSequenceAnimationMode;
918
919 #[unsafe(method(setImageSequenceAnimationMode:))]
921 #[unsafe(method_family = none)]
922 pub unsafe fn setImageSequenceAnimationMode(
923 &self,
924 image_sequence_animation_mode: SCNParticleImageSequenceAnimationMode,
925 );
926
927 #[cfg(feature = "objc2-app-kit")]
928 #[cfg(target_os = "macos")]
929 #[unsafe(method(particleColor))]
930 #[unsafe(method_family = none)]
931 pub unsafe fn particleColor(&self) -> Retained<NSColor>;
932
933 #[cfg(feature = "objc2-app-kit")]
934 #[cfg(target_os = "macos")]
935 #[unsafe(method(setParticleColor:))]
937 #[unsafe(method_family = none)]
938 pub unsafe fn setParticleColor(&self, particle_color: &NSColor);
939
940 #[cfg(all(feature = "SceneKitTypes", feature = "objc2-core-foundation"))]
941 #[unsafe(method(particleColorVariation))]
942 #[unsafe(method_family = none)]
943 pub unsafe fn particleColorVariation(&self) -> SCNVector4;
944
945 #[cfg(all(feature = "SceneKitTypes", feature = "objc2-core-foundation"))]
946 #[unsafe(method(setParticleColorVariation:))]
948 #[unsafe(method_family = none)]
949 pub unsafe fn setParticleColorVariation(&self, particle_color_variation: SCNVector4);
950
951 #[cfg(feature = "objc2-core-foundation")]
952 #[unsafe(method(particleSize))]
953 #[unsafe(method_family = none)]
954 pub unsafe fn particleSize(&self) -> CGFloat;
955
956 #[cfg(feature = "objc2-core-foundation")]
957 #[unsafe(method(setParticleSize:))]
959 #[unsafe(method_family = none)]
960 pub unsafe fn setParticleSize(&self, particle_size: CGFloat);
961
962 #[cfg(feature = "objc2-core-foundation")]
963 #[unsafe(method(particleSizeVariation))]
964 #[unsafe(method_family = none)]
965 pub unsafe fn particleSizeVariation(&self) -> CGFloat;
966
967 #[cfg(feature = "objc2-core-foundation")]
968 #[unsafe(method(setParticleSizeVariation:))]
970 #[unsafe(method_family = none)]
971 pub unsafe fn setParticleSizeVariation(&self, particle_size_variation: CGFloat);
972
973 #[cfg(feature = "objc2-core-foundation")]
974 #[unsafe(method(particleIntensity))]
975 #[unsafe(method_family = none)]
976 pub unsafe fn particleIntensity(&self) -> CGFloat;
977
978 #[cfg(feature = "objc2-core-foundation")]
979 #[unsafe(method(setParticleIntensity:))]
981 #[unsafe(method_family = none)]
982 pub unsafe fn setParticleIntensity(&self, particle_intensity: CGFloat);
983
984 #[cfg(feature = "objc2-core-foundation")]
985 #[unsafe(method(particleIntensityVariation))]
986 #[unsafe(method_family = none)]
987 pub unsafe fn particleIntensityVariation(&self) -> CGFloat;
988
989 #[cfg(feature = "objc2-core-foundation")]
990 #[unsafe(method(setParticleIntensityVariation:))]
992 #[unsafe(method_family = none)]
993 pub unsafe fn setParticleIntensityVariation(&self, particle_intensity_variation: CGFloat);
994
995 #[unsafe(method(blendMode))]
996 #[unsafe(method_family = none)]
997 pub unsafe fn blendMode(&self) -> SCNParticleBlendMode;
998
999 #[unsafe(method(setBlendMode:))]
1001 #[unsafe(method_family = none)]
1002 pub unsafe fn setBlendMode(&self, blend_mode: SCNParticleBlendMode);
1003
1004 #[unsafe(method(isBlackPassEnabled))]
1005 #[unsafe(method_family = none)]
1006 pub unsafe fn isBlackPassEnabled(&self) -> bool;
1007
1008 #[unsafe(method(setBlackPassEnabled:))]
1010 #[unsafe(method_family = none)]
1011 pub unsafe fn setBlackPassEnabled(&self, black_pass_enabled: bool);
1012
1013 #[unsafe(method(orientationMode))]
1014 #[unsafe(method_family = none)]
1015 pub unsafe fn orientationMode(&self) -> SCNParticleOrientationMode;
1016
1017 #[unsafe(method(setOrientationMode:))]
1019 #[unsafe(method_family = none)]
1020 pub unsafe fn setOrientationMode(&self, orientation_mode: SCNParticleOrientationMode);
1021
1022 #[unsafe(method(sortingMode))]
1023 #[unsafe(method_family = none)]
1024 pub unsafe fn sortingMode(&self) -> SCNParticleSortingMode;
1025
1026 #[unsafe(method(setSortingMode:))]
1028 #[unsafe(method_family = none)]
1029 pub unsafe fn setSortingMode(&self, sorting_mode: SCNParticleSortingMode);
1030
1031 #[unsafe(method(isLightingEnabled))]
1032 #[unsafe(method_family = none)]
1033 pub unsafe fn isLightingEnabled(&self) -> bool;
1034
1035 #[unsafe(method(setLightingEnabled:))]
1037 #[unsafe(method_family = none)]
1038 pub unsafe fn setLightingEnabled(&self, lighting_enabled: bool);
1039
1040 #[unsafe(method(affectedByGravity))]
1041 #[unsafe(method_family = none)]
1042 pub unsafe fn affectedByGravity(&self) -> bool;
1043
1044 #[unsafe(method(setAffectedByGravity:))]
1046 #[unsafe(method_family = none)]
1047 pub unsafe fn setAffectedByGravity(&self, affected_by_gravity: bool);
1048
1049 #[unsafe(method(affectedByPhysicsFields))]
1050 #[unsafe(method_family = none)]
1051 pub unsafe fn affectedByPhysicsFields(&self) -> bool;
1052
1053 #[unsafe(method(setAffectedByPhysicsFields:))]
1055 #[unsafe(method_family = none)]
1056 pub unsafe fn setAffectedByPhysicsFields(&self, affected_by_physics_fields: bool);
1057
1058 #[unsafe(method(particleDiesOnCollision))]
1059 #[unsafe(method_family = none)]
1060 pub unsafe fn particleDiesOnCollision(&self) -> bool;
1061
1062 #[unsafe(method(setParticleDiesOnCollision:))]
1064 #[unsafe(method_family = none)]
1065 pub unsafe fn setParticleDiesOnCollision(&self, particle_dies_on_collision: bool);
1066
1067 #[cfg(feature = "SCNNode")]
1068 #[unsafe(method(colliderNodes))]
1069 #[unsafe(method_family = none)]
1070 pub unsafe fn colliderNodes(&self) -> Option<Retained<NSArray<SCNNode>>>;
1071
1072 #[cfg(feature = "SCNNode")]
1073 #[unsafe(method(setColliderNodes:))]
1075 #[unsafe(method_family = none)]
1076 pub unsafe fn setColliderNodes(&self, collider_nodes: Option<&NSArray<SCNNode>>);
1077
1078 #[cfg(feature = "objc2-core-foundation")]
1079 #[unsafe(method(particleMass))]
1080 #[unsafe(method_family = none)]
1081 pub unsafe fn particleMass(&self) -> CGFloat;
1082
1083 #[cfg(feature = "objc2-core-foundation")]
1084 #[unsafe(method(setParticleMass:))]
1086 #[unsafe(method_family = none)]
1087 pub unsafe fn setParticleMass(&self, particle_mass: CGFloat);
1088
1089 #[cfg(feature = "objc2-core-foundation")]
1090 #[unsafe(method(particleMassVariation))]
1091 #[unsafe(method_family = none)]
1092 pub unsafe fn particleMassVariation(&self) -> CGFloat;
1093
1094 #[cfg(feature = "objc2-core-foundation")]
1095 #[unsafe(method(setParticleMassVariation:))]
1097 #[unsafe(method_family = none)]
1098 pub unsafe fn setParticleMassVariation(&self, particle_mass_variation: CGFloat);
1099
1100 #[cfg(feature = "objc2-core-foundation")]
1101 #[unsafe(method(particleBounce))]
1102 #[unsafe(method_family = none)]
1103 pub unsafe fn particleBounce(&self) -> CGFloat;
1104
1105 #[cfg(feature = "objc2-core-foundation")]
1106 #[unsafe(method(setParticleBounce:))]
1108 #[unsafe(method_family = none)]
1109 pub unsafe fn setParticleBounce(&self, particle_bounce: CGFloat);
1110
1111 #[cfg(feature = "objc2-core-foundation")]
1112 #[unsafe(method(particleBounceVariation))]
1113 #[unsafe(method_family = none)]
1114 pub unsafe fn particleBounceVariation(&self) -> CGFloat;
1115
1116 #[cfg(feature = "objc2-core-foundation")]
1117 #[unsafe(method(setParticleBounceVariation:))]
1119 #[unsafe(method_family = none)]
1120 pub unsafe fn setParticleBounceVariation(&self, particle_bounce_variation: CGFloat);
1121
1122 #[cfg(feature = "objc2-core-foundation")]
1123 #[unsafe(method(particleFriction))]
1124 #[unsafe(method_family = none)]
1125 pub unsafe fn particleFriction(&self) -> CGFloat;
1126
1127 #[cfg(feature = "objc2-core-foundation")]
1128 #[unsafe(method(setParticleFriction:))]
1130 #[unsafe(method_family = none)]
1131 pub unsafe fn setParticleFriction(&self, particle_friction: CGFloat);
1132
1133 #[cfg(feature = "objc2-core-foundation")]
1134 #[unsafe(method(particleFrictionVariation))]
1135 #[unsafe(method_family = none)]
1136 pub unsafe fn particleFrictionVariation(&self) -> CGFloat;
1137
1138 #[cfg(feature = "objc2-core-foundation")]
1139 #[unsafe(method(setParticleFrictionVariation:))]
1141 #[unsafe(method_family = none)]
1142 pub unsafe fn setParticleFrictionVariation(&self, particle_friction_variation: CGFloat);
1143
1144 #[cfg(feature = "objc2-core-foundation")]
1145 #[unsafe(method(particleCharge))]
1146 #[unsafe(method_family = none)]
1147 pub unsafe fn particleCharge(&self) -> CGFloat;
1148
1149 #[cfg(feature = "objc2-core-foundation")]
1150 #[unsafe(method(setParticleCharge:))]
1152 #[unsafe(method_family = none)]
1153 pub unsafe fn setParticleCharge(&self, particle_charge: CGFloat);
1154
1155 #[cfg(feature = "objc2-core-foundation")]
1156 #[unsafe(method(particleChargeVariation))]
1157 #[unsafe(method_family = none)]
1158 pub unsafe fn particleChargeVariation(&self) -> CGFloat;
1159
1160 #[cfg(feature = "objc2-core-foundation")]
1161 #[unsafe(method(setParticleChargeVariation:))]
1163 #[unsafe(method_family = none)]
1164 pub unsafe fn setParticleChargeVariation(&self, particle_charge_variation: CGFloat);
1165
1166 #[cfg(feature = "objc2-core-foundation")]
1167 #[unsafe(method(dampingFactor))]
1168 #[unsafe(method_family = none)]
1169 pub unsafe fn dampingFactor(&self) -> CGFloat;
1170
1171 #[cfg(feature = "objc2-core-foundation")]
1172 #[unsafe(method(setDampingFactor:))]
1174 #[unsafe(method_family = none)]
1175 pub unsafe fn setDampingFactor(&self, damping_factor: CGFloat);
1176
1177 #[cfg(feature = "objc2-core-foundation")]
1178 #[unsafe(method(speedFactor))]
1179 #[unsafe(method_family = none)]
1180 pub unsafe fn speedFactor(&self) -> CGFloat;
1181
1182 #[cfg(feature = "objc2-core-foundation")]
1183 #[unsafe(method(setSpeedFactor:))]
1185 #[unsafe(method_family = none)]
1186 pub unsafe fn setSpeedFactor(&self, speed_factor: CGFloat);
1187
1188 #[cfg(feature = "objc2-core-foundation")]
1189 #[unsafe(method(stretchFactor))]
1190 #[unsafe(method_family = none)]
1191 pub unsafe fn stretchFactor(&self) -> CGFloat;
1192
1193 #[cfg(feature = "objc2-core-foundation")]
1194 #[unsafe(method(setStretchFactor:))]
1196 #[unsafe(method_family = none)]
1197 pub unsafe fn setStretchFactor(&self, stretch_factor: CGFloat);
1198
1199 #[cfg(feature = "objc2-core-foundation")]
1200 #[unsafe(method(fresnelExponent))]
1201 #[unsafe(method_family = none)]
1202 pub unsafe fn fresnelExponent(&self) -> CGFloat;
1203
1204 #[cfg(feature = "objc2-core-foundation")]
1205 #[unsafe(method(setFresnelExponent:))]
1207 #[unsafe(method_family = none)]
1208 pub unsafe fn setFresnelExponent(&self, fresnel_exponent: CGFloat);
1209
1210 #[unsafe(method(writesToDepthBuffer))]
1212 #[unsafe(method_family = none)]
1213 pub unsafe fn writesToDepthBuffer(&self) -> bool;
1214
1215 #[unsafe(method(setWritesToDepthBuffer:))]
1217 #[unsafe(method_family = none)]
1218 pub unsafe fn setWritesToDepthBuffer(&self, writes_to_depth_buffer: bool);
1219
1220 #[unsafe(method(propertyControllers))]
1221 #[unsafe(method_family = none)]
1222 pub unsafe fn propertyControllers(
1223 &self,
1224 ) -> Option<Retained<NSDictionary<SCNParticleProperty, SCNParticlePropertyController>>>;
1225
1226 #[unsafe(method(setPropertyControllers:))]
1228 #[unsafe(method_family = none)]
1229 pub unsafe fn setPropertyControllers(
1230 &self,
1231 property_controllers: Option<
1232 &NSDictionary<SCNParticleProperty, SCNParticlePropertyController>,
1233 >,
1234 );
1235
1236 #[unsafe(method(reset))]
1237 #[unsafe(method_family = none)]
1238 pub unsafe fn reset(&self);
1239
1240 #[cfg(feature = "block2")]
1241 #[unsafe(method(handleEvent:forProperties:withBlock:))]
1242 #[unsafe(method_family = none)]
1243 pub unsafe fn handleEvent_forProperties_withBlock(
1244 &self,
1245 event: SCNParticleEvent,
1246 properties: &NSArray<SCNParticleProperty>,
1247 block: SCNParticleEventBlock,
1248 );
1249
1250 #[cfg(feature = "block2")]
1251 #[unsafe(method(addModifierForProperties:atStage:withBlock:))]
1252 #[unsafe(method_family = none)]
1253 pub unsafe fn addModifierForProperties_atStage_withBlock(
1254 &self,
1255 properties: &NSArray<SCNParticleProperty>,
1256 stage: SCNParticleModifierStage,
1257 block: SCNParticleModifierBlock,
1258 );
1259
1260 #[unsafe(method(removeModifiersOfStage:))]
1261 #[unsafe(method_family = none)]
1262 pub unsafe fn removeModifiersOfStage(&self, stage: SCNParticleModifierStage);
1263
1264 #[unsafe(method(removeAllModifiers))]
1265 #[unsafe(method_family = none)]
1266 pub unsafe fn removeAllModifiers(&self);
1267 );
1268}
1269
1270impl SCNParticleSystem {
1272 extern_methods!(
1273 #[unsafe(method(init))]
1274 #[unsafe(method_family = init)]
1275 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
1276
1277 #[unsafe(method(new))]
1278 #[unsafe(method_family = new)]
1279 pub unsafe fn new() -> Retained<Self>;
1280 );
1281}
1282
1283#[cfg(feature = "SCNNode")]
1285impl SCNNode {
1286 extern_methods!(
1287 #[unsafe(method(addParticleSystem:))]
1288 #[unsafe(method_family = none)]
1289 pub unsafe fn addParticleSystem(&self, system: &SCNParticleSystem);
1290
1291 #[unsafe(method(removeAllParticleSystems))]
1292 #[unsafe(method_family = none)]
1293 pub unsafe fn removeAllParticleSystems(&self);
1294
1295 #[unsafe(method(removeParticleSystem:))]
1296 #[unsafe(method_family = none)]
1297 pub unsafe fn removeParticleSystem(&self, system: &SCNParticleSystem);
1298
1299 #[unsafe(method(particleSystems))]
1300 #[unsafe(method_family = none)]
1301 pub unsafe fn particleSystems(&self) -> Option<Retained<NSArray<SCNParticleSystem>>>;
1302 );
1303}
1304
1305#[cfg(feature = "SCNScene")]
1307impl SCNScene {
1308 extern_methods!(
1309 #[cfg(all(feature = "SceneKitTypes", feature = "objc2-quartz-core"))]
1310 #[cfg(not(target_os = "watchos"))]
1311 #[unsafe(method(addParticleSystem:withTransform:))]
1312 #[unsafe(method_family = none)]
1313 pub unsafe fn addParticleSystem_withTransform(
1314 &self,
1315 system: &SCNParticleSystem,
1316 transform: SCNMatrix4,
1317 );
1318
1319 #[unsafe(method(removeAllParticleSystems))]
1320 #[unsafe(method_family = none)]
1321 pub unsafe fn removeAllParticleSystems(&self);
1322
1323 #[unsafe(method(removeParticleSystem:))]
1324 #[unsafe(method_family = none)]
1325 pub unsafe fn removeParticleSystem(&self, system: &SCNParticleSystem);
1326
1327 #[unsafe(method(particleSystems))]
1328 #[unsafe(method_family = none)]
1329 pub unsafe fn particleSystems(&self) -> Option<Retained<NSArray<SCNParticleSystem>>>;
1330 );
1331}