objc2_scene_kit/generated/
SCNPhysicsWorld.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 SCNPhysicsTestOption = NSString;
15
16extern "C" {
17 pub static SCNPhysicsTestCollisionBitMaskKey: &'static SCNPhysicsTestOption;
19}
20
21extern "C" {
22 pub static SCNPhysicsTestSearchModeKey: &'static SCNPhysicsTestOption;
24}
25
26extern "C" {
27 pub static SCNPhysicsTestBackfaceCullingKey: &'static SCNPhysicsTestOption;
29}
30
31pub type SCNPhysicsTestSearchMode = NSString;
34
35extern "C" {
36 pub static SCNPhysicsTestSearchModeAny: &'static SCNPhysicsTestSearchMode;
38}
39
40extern "C" {
41 pub static SCNPhysicsTestSearchModeClosest: &'static SCNPhysicsTestSearchMode;
43}
44
45extern "C" {
46 pub static SCNPhysicsTestSearchModeAll: &'static SCNPhysicsTestSearchMode;
48}
49
50extern_protocol!(
51 pub unsafe trait SCNPhysicsContactDelegate: NSObjectProtocol {
55 #[cfg(feature = "SCNPhysicsContact")]
56 #[optional]
57 #[unsafe(method(physicsWorld:didBeginContact:))]
58 #[unsafe(method_family = none)]
59 unsafe fn physicsWorld_didBeginContact(
60 &self,
61 world: &SCNPhysicsWorld,
62 contact: &SCNPhysicsContact,
63 );
64
65 #[cfg(feature = "SCNPhysicsContact")]
66 #[optional]
67 #[unsafe(method(physicsWorld:didUpdateContact:))]
68 #[unsafe(method_family = none)]
69 unsafe fn physicsWorld_didUpdateContact(
70 &self,
71 world: &SCNPhysicsWorld,
72 contact: &SCNPhysicsContact,
73 );
74
75 #[cfg(feature = "SCNPhysicsContact")]
76 #[optional]
77 #[unsafe(method(physicsWorld:didEndContact:))]
78 #[unsafe(method_family = none)]
79 unsafe fn physicsWorld_didEndContact(
80 &self,
81 world: &SCNPhysicsWorld,
82 contact: &SCNPhysicsContact,
83 );
84 }
85);
86
87extern_class!(
88 #[unsafe(super(NSObject))]
94 #[derive(Debug, PartialEq, Eq, Hash)]
95 pub struct SCNPhysicsWorld;
96);
97
98unsafe impl NSCoding for SCNPhysicsWorld {}
99
100unsafe impl NSObjectProtocol for SCNPhysicsWorld {}
101
102unsafe impl NSSecureCoding for SCNPhysicsWorld {}
103
104impl SCNPhysicsWorld {
105 extern_methods!(
106 #[cfg(all(feature = "SceneKitTypes", feature = "objc2-core-foundation"))]
107 #[unsafe(method(gravity))]
108 #[unsafe(method_family = none)]
109 pub unsafe fn gravity(&self) -> SCNVector3;
110
111 #[cfg(all(feature = "SceneKitTypes", feature = "objc2-core-foundation"))]
112 #[unsafe(method(setGravity:))]
114 #[unsafe(method_family = none)]
115 pub unsafe fn setGravity(&self, gravity: SCNVector3);
116
117 #[cfg(feature = "objc2-core-foundation")]
118 #[unsafe(method(speed))]
119 #[unsafe(method_family = none)]
120 pub unsafe fn speed(&self) -> CGFloat;
121
122 #[cfg(feature = "objc2-core-foundation")]
123 #[unsafe(method(setSpeed:))]
125 #[unsafe(method_family = none)]
126 pub unsafe fn setSpeed(&self, speed: CGFloat);
127
128 #[unsafe(method(timeStep))]
129 #[unsafe(method_family = none)]
130 pub unsafe fn timeStep(&self) -> NSTimeInterval;
131
132 #[unsafe(method(setTimeStep:))]
134 #[unsafe(method_family = none)]
135 pub unsafe fn setTimeStep(&self, time_step: NSTimeInterval);
136
137 #[unsafe(method(contactDelegate))]
138 #[unsafe(method_family = none)]
139 pub unsafe fn contactDelegate(
140 &self,
141 ) -> Option<Retained<ProtocolObject<dyn SCNPhysicsContactDelegate>>>;
142
143 #[unsafe(method(setContactDelegate:))]
146 #[unsafe(method_family = none)]
147 pub unsafe fn setContactDelegate(
148 &self,
149 contact_delegate: Option<&ProtocolObject<dyn SCNPhysicsContactDelegate>>,
150 );
151
152 #[cfg(feature = "SCNPhysicsBehavior")]
153 #[unsafe(method(addBehavior:))]
154 #[unsafe(method_family = none)]
155 pub unsafe fn addBehavior(&self, behavior: &SCNPhysicsBehavior);
156
157 #[cfg(feature = "SCNPhysicsBehavior")]
158 #[unsafe(method(removeBehavior:))]
159 #[unsafe(method_family = none)]
160 pub unsafe fn removeBehavior(&self, behavior: &SCNPhysicsBehavior);
161
162 #[unsafe(method(removeAllBehaviors))]
163 #[unsafe(method_family = none)]
164 pub unsafe fn removeAllBehaviors(&self);
165
166 #[cfg(feature = "SCNPhysicsBehavior")]
167 #[unsafe(method(allBehaviors))]
168 #[unsafe(method_family = none)]
169 pub unsafe fn allBehaviors(&self) -> Retained<NSArray<SCNPhysicsBehavior>>;
170
171 #[cfg(all(
172 feature = "SCNHitTest",
173 feature = "SceneKitTypes",
174 feature = "objc2-core-foundation"
175 ))]
176 #[unsafe(method(rayTestWithSegmentFromPoint:toPoint:options:))]
177 #[unsafe(method_family = none)]
178 pub unsafe fn rayTestWithSegmentFromPoint_toPoint_options(
179 &self,
180 origin: SCNVector3,
181 dest: SCNVector3,
182 options: Option<&NSDictionary<SCNPhysicsTestOption, AnyObject>>,
183 ) -> Retained<NSArray<SCNHitTestResult>>;
184
185 #[cfg(all(feature = "SCNPhysicsBody", feature = "SCNPhysicsContact"))]
186 #[unsafe(method(contactTestBetweenBody:andBody:options:))]
187 #[unsafe(method_family = none)]
188 pub unsafe fn contactTestBetweenBody_andBody_options(
189 &self,
190 body_a: &SCNPhysicsBody,
191 body_b: &SCNPhysicsBody,
192 options: Option<&NSDictionary<SCNPhysicsTestOption, AnyObject>>,
193 ) -> Retained<NSArray<SCNPhysicsContact>>;
194
195 #[cfg(all(feature = "SCNPhysicsBody", feature = "SCNPhysicsContact"))]
196 #[unsafe(method(contactTestWithBody:options:))]
197 #[unsafe(method_family = none)]
198 pub unsafe fn contactTestWithBody_options(
199 &self,
200 body: &SCNPhysicsBody,
201 options: Option<&NSDictionary<SCNPhysicsTestOption, AnyObject>>,
202 ) -> Retained<NSArray<SCNPhysicsContact>>;
203
204 #[cfg(all(
205 feature = "SCNPhysicsContact",
206 feature = "SCNPhysicsShape",
207 feature = "SceneKitTypes",
208 feature = "objc2-quartz-core"
209 ))]
210 #[cfg(not(target_os = "watchos"))]
211 #[unsafe(method(convexSweepTestWithShape:fromTransform:toTransform:options:))]
212 #[unsafe(method_family = none)]
213 pub unsafe fn convexSweepTestWithShape_fromTransform_toTransform_options(
214 &self,
215 shape: &SCNPhysicsShape,
216 from: SCNMatrix4,
217 to: SCNMatrix4,
218 options: Option<&NSDictionary<SCNPhysicsTestOption, AnyObject>>,
219 ) -> Retained<NSArray<SCNPhysicsContact>>;
220
221 #[unsafe(method(updateCollisionPairs))]
222 #[unsafe(method_family = none)]
223 pub unsafe fn updateCollisionPairs(&self);
224 );
225}
226
227impl SCNPhysicsWorld {
229 extern_methods!(
230 #[unsafe(method(init))]
231 #[unsafe(method_family = init)]
232 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
233
234 #[unsafe(method(new))]
235 #[unsafe(method_family = new)]
236 pub unsafe fn new() -> Retained<Self>;
237 );
238}