objc2_scene_kit/generated/
SCNPhysicsField.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
12#[repr(transparent)]
17#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
18pub struct SCNPhysicsFieldScope(pub NSInteger);
19impl SCNPhysicsFieldScope {
20 #[doc(alias = "SCNPhysicsFieldScopeInsideExtent")]
21 pub const InsideExtent: Self = Self(0);
22 #[doc(alias = "SCNPhysicsFieldScopeOutsideExtent")]
23 pub const OutsideExtent: Self = Self(1);
24}
25
26unsafe impl Encode for SCNPhysicsFieldScope {
27 const ENCODING: Encoding = NSInteger::ENCODING;
28}
29
30unsafe impl RefEncode for SCNPhysicsFieldScope {
31 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
32}
33
34#[cfg(all(
36 feature = "SceneKitTypes",
37 feature = "block2",
38 feature = "objc2-core-foundation"
39))]
40pub type SCNFieldForceEvaluator = *mut block2::DynBlock<
41 dyn Fn(SCNVector3, SCNVector3, c_float, c_float, NSTimeInterval) -> SCNVector3,
42>;
43
44extern_class!(
45 #[unsafe(super(NSObject))]
49 #[derive(Debug, PartialEq, Eq, Hash)]
50 pub struct SCNPhysicsField;
51);
52
53extern_conformance!(
54 unsafe impl NSCoding for SCNPhysicsField {}
55);
56
57extern_conformance!(
58 unsafe impl NSCopying for SCNPhysicsField {}
59);
60
61unsafe impl CopyingHelper for SCNPhysicsField {
62 type Result = Self;
63}
64
65extern_conformance!(
66 unsafe impl NSObjectProtocol for SCNPhysicsField {}
67);
68
69extern_conformance!(
70 unsafe impl NSSecureCoding for SCNPhysicsField {}
71);
72
73impl SCNPhysicsField {
74 extern_methods!(
75 #[cfg(feature = "objc2-core-foundation")]
76 #[unsafe(method(strength))]
77 #[unsafe(method_family = none)]
78 pub unsafe fn strength(&self) -> CGFloat;
79
80 #[cfg(feature = "objc2-core-foundation")]
81 #[unsafe(method(setStrength:))]
83 #[unsafe(method_family = none)]
84 pub unsafe fn setStrength(&self, strength: CGFloat);
85
86 #[cfg(feature = "objc2-core-foundation")]
87 #[unsafe(method(falloffExponent))]
88 #[unsafe(method_family = none)]
89 pub unsafe fn falloffExponent(&self) -> CGFloat;
90
91 #[cfg(feature = "objc2-core-foundation")]
92 #[unsafe(method(setFalloffExponent:))]
94 #[unsafe(method_family = none)]
95 pub unsafe fn setFalloffExponent(&self, falloff_exponent: CGFloat);
96
97 #[cfg(feature = "objc2-core-foundation")]
98 #[unsafe(method(minimumDistance))]
99 #[unsafe(method_family = none)]
100 pub unsafe fn minimumDistance(&self) -> CGFloat;
101
102 #[cfg(feature = "objc2-core-foundation")]
103 #[unsafe(method(setMinimumDistance:))]
105 #[unsafe(method_family = none)]
106 pub unsafe fn setMinimumDistance(&self, minimum_distance: CGFloat);
107
108 #[unsafe(method(isActive))]
109 #[unsafe(method_family = none)]
110 pub unsafe fn isActive(&self) -> bool;
111
112 #[unsafe(method(setActive:))]
114 #[unsafe(method_family = none)]
115 pub unsafe fn setActive(&self, active: bool);
116
117 #[unsafe(method(isExclusive))]
118 #[unsafe(method_family = none)]
119 pub unsafe fn isExclusive(&self) -> bool;
120
121 #[unsafe(method(setExclusive:))]
123 #[unsafe(method_family = none)]
124 pub unsafe fn setExclusive(&self, exclusive: bool);
125
126 #[cfg(all(feature = "SceneKitTypes", feature = "objc2-core-foundation"))]
127 #[unsafe(method(halfExtent))]
128 #[unsafe(method_family = none)]
129 pub unsafe fn halfExtent(&self) -> SCNVector3;
130
131 #[cfg(all(feature = "SceneKitTypes", feature = "objc2-core-foundation"))]
132 #[unsafe(method(setHalfExtent:))]
134 #[unsafe(method_family = none)]
135 pub unsafe fn setHalfExtent(&self, half_extent: SCNVector3);
136
137 #[unsafe(method(usesEllipsoidalExtent))]
138 #[unsafe(method_family = none)]
139 pub unsafe fn usesEllipsoidalExtent(&self) -> bool;
140
141 #[unsafe(method(setUsesEllipsoidalExtent:))]
143 #[unsafe(method_family = none)]
144 pub unsafe fn setUsesEllipsoidalExtent(&self, uses_ellipsoidal_extent: bool);
145
146 #[unsafe(method(scope))]
147 #[unsafe(method_family = none)]
148 pub unsafe fn scope(&self) -> SCNPhysicsFieldScope;
149
150 #[unsafe(method(setScope:))]
152 #[unsafe(method_family = none)]
153 pub unsafe fn setScope(&self, scope: SCNPhysicsFieldScope);
154
155 #[cfg(all(feature = "SceneKitTypes", feature = "objc2-core-foundation"))]
156 #[unsafe(method(offset))]
157 #[unsafe(method_family = none)]
158 pub unsafe fn offset(&self) -> SCNVector3;
159
160 #[cfg(all(feature = "SceneKitTypes", feature = "objc2-core-foundation"))]
161 #[unsafe(method(setOffset:))]
163 #[unsafe(method_family = none)]
164 pub unsafe fn setOffset(&self, offset: SCNVector3);
165
166 #[cfg(all(feature = "SceneKitTypes", feature = "objc2-core-foundation"))]
167 #[unsafe(method(direction))]
168 #[unsafe(method_family = none)]
169 pub unsafe fn direction(&self) -> SCNVector3;
170
171 #[cfg(all(feature = "SceneKitTypes", feature = "objc2-core-foundation"))]
172 #[unsafe(method(setDirection:))]
174 #[unsafe(method_family = none)]
175 pub unsafe fn setDirection(&self, direction: SCNVector3);
176
177 #[unsafe(method(categoryBitMask))]
179 #[unsafe(method_family = none)]
180 pub unsafe fn categoryBitMask(&self) -> NSUInteger;
181
182 #[unsafe(method(setCategoryBitMask:))]
184 #[unsafe(method_family = none)]
185 pub unsafe fn setCategoryBitMask(&self, category_bit_mask: NSUInteger);
186
187 #[unsafe(method(dragField))]
190 #[unsafe(method_family = none)]
191 pub unsafe fn dragField() -> Retained<SCNPhysicsField>;
192
193 #[unsafe(method(vortexField))]
198 #[unsafe(method_family = none)]
199 pub unsafe fn vortexField() -> Retained<SCNPhysicsField>;
200
201 #[unsafe(method(radialGravityField))]
205 #[unsafe(method_family = none)]
206 pub unsafe fn radialGravityField() -> Retained<SCNPhysicsField>;
207
208 #[unsafe(method(linearGravityField))]
212 #[unsafe(method_family = none)]
213 pub unsafe fn linearGravityField() -> Retained<SCNPhysicsField>;
214
215 #[cfg(feature = "objc2-core-foundation")]
216 #[unsafe(method(noiseFieldWithSmoothness:animationSpeed:))]
221 #[unsafe(method_family = none)]
222 pub unsafe fn noiseFieldWithSmoothness_animationSpeed(
223 smoothness: CGFloat,
224 speed: CGFloat,
225 ) -> Retained<SCNPhysicsField>;
226
227 #[cfg(feature = "objc2-core-foundation")]
228 #[unsafe(method(turbulenceFieldWithSmoothness:animationSpeed:))]
230 #[unsafe(method_family = none)]
231 pub unsafe fn turbulenceFieldWithSmoothness_animationSpeed(
232 smoothness: CGFloat,
233 speed: CGFloat,
234 ) -> Retained<SCNPhysicsField>;
235
236 #[unsafe(method(springField))]
240 #[unsafe(method_family = none)]
241 pub unsafe fn springField() -> Retained<SCNPhysicsField>;
242
243 #[unsafe(method(electricField))]
247 #[unsafe(method_family = none)]
248 pub unsafe fn electricField() -> Retained<SCNPhysicsField>;
249
250 #[unsafe(method(magneticField))]
254 #[unsafe(method_family = none)]
255 pub unsafe fn magneticField() -> Retained<SCNPhysicsField>;
256
257 #[cfg(all(
258 feature = "SceneKitTypes",
259 feature = "block2",
260 feature = "objc2-core-foundation"
261 ))]
262 #[unsafe(method(customFieldWithEvaluationBlock:))]
264 #[unsafe(method_family = none)]
265 pub unsafe fn customFieldWithEvaluationBlock(
266 block: SCNFieldForceEvaluator,
267 ) -> Retained<SCNPhysicsField>;
268 );
269}
270
271impl SCNPhysicsField {
273 extern_methods!(
274 #[unsafe(method(init))]
275 #[unsafe(method_family = init)]
276 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
277
278 #[unsafe(method(new))]
279 #[unsafe(method_family = new)]
280 pub unsafe fn new() -> Retained<Self>;
281 );
282}