]> git.proxmox.com Git - rustc.git/blame - vendor/windows/src/Windows/Perception/Spatial/mod.rs
New upstream version 1.70.0+dfsg1
[rustc.git] / vendor / windows / src / Windows / Perception / Spatial / mod.rs
CommitLineData
353b0b11
FG
1#[cfg(feature = "Perception_Spatial_Preview")]
2pub mod Preview;
3#[cfg(feature = "Perception_Spatial_Surfaces")]
4pub mod Surfaces;
5#[doc(hidden)]
6#[repr(transparent)]
7pub struct ISpatialAnchor(::windows::core::IUnknown);
8unsafe impl ::windows::core::Interface for ISpatialAnchor {
9 type Vtable = ISpatialAnchor_Vtbl;
10}
11impl ::core::clone::Clone for ISpatialAnchor {
12 fn clone(&self) -> Self {
13 Self(self.0.clone())
14 }
15}
16unsafe impl ::windows::core::ComInterface for ISpatialAnchor {
17 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x0529e5ce_1d34_3702_bcec_eabff578a869);
18}
19#[repr(C)]
20#[doc(hidden)]
21pub struct ISpatialAnchor_Vtbl {
22 pub base__: ::windows::core::IInspectable_Vtbl,
23 pub CoordinateSystem: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
24 pub RawCoordinateSystem: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
25 #[cfg(feature = "Foundation")]
26 pub RawCoordinateSystemAdjusted: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: *mut ::core::ffi::c_void, result__: *mut super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
27 #[cfg(not(feature = "Foundation"))]
28 RawCoordinateSystemAdjusted: usize,
29 #[cfg(feature = "Foundation")]
30 pub RemoveRawCoordinateSystemAdjusted: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, cookie: super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
31 #[cfg(not(feature = "Foundation"))]
32 RemoveRawCoordinateSystemAdjusted: usize,
33}
34#[doc(hidden)]
35#[repr(transparent)]
36pub struct ISpatialAnchor2(::windows::core::IUnknown);
37unsafe impl ::windows::core::Interface for ISpatialAnchor2 {
38 type Vtable = ISpatialAnchor2_Vtbl;
39}
40impl ::core::clone::Clone for ISpatialAnchor2 {
41 fn clone(&self) -> Self {
42 Self(self.0.clone())
43 }
44}
45unsafe impl ::windows::core::ComInterface for ISpatialAnchor2 {
46 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xed17c908_a695_4cf6_92fd_97263ba71047);
47}
48#[repr(C)]
49#[doc(hidden)]
50pub struct ISpatialAnchor2_Vtbl {
51 pub base__: ::windows::core::IInspectable_Vtbl,
52 pub RemovedByUser: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
53}
54#[doc(hidden)]
55#[repr(transparent)]
56pub struct ISpatialAnchorExportSufficiency(::windows::core::IUnknown);
57unsafe impl ::windows::core::Interface for ISpatialAnchorExportSufficiency {
58 type Vtable = ISpatialAnchorExportSufficiency_Vtbl;
59}
60impl ::core::clone::Clone for ISpatialAnchorExportSufficiency {
61 fn clone(&self) -> Self {
62 Self(self.0.clone())
63 }
64}
65unsafe impl ::windows::core::ComInterface for ISpatialAnchorExportSufficiency {
66 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x77c25b2b_3409_4088_b91b_fdfd05d1648f);
67}
68#[repr(C)]
69#[doc(hidden)]
70pub struct ISpatialAnchorExportSufficiency_Vtbl {
71 pub base__: ::windows::core::IInspectable_Vtbl,
72 pub IsMinimallySufficient: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
73 pub SufficiencyLevel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
74 pub RecommendedSufficiencyLevel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut f64) -> ::windows::core::HRESULT,
75}
76#[doc(hidden)]
77#[repr(transparent)]
78pub struct ISpatialAnchorExporter(::windows::core::IUnknown);
79unsafe impl ::windows::core::Interface for ISpatialAnchorExporter {
80 type Vtable = ISpatialAnchorExporter_Vtbl;
81}
82impl ::core::clone::Clone for ISpatialAnchorExporter {
83 fn clone(&self) -> Self {
84 Self(self.0.clone())
85 }
86}
87unsafe impl ::windows::core::ComInterface for ISpatialAnchorExporter {
88 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x9a2a4338_24fb_4269_89c5_88304aeef20f);
89}
90#[repr(C)]
91#[doc(hidden)]
92pub struct ISpatialAnchorExporter_Vtbl {
93 pub base__: ::windows::core::IInspectable_Vtbl,
94 #[cfg(feature = "Foundation")]
95 pub GetAnchorExportSufficiencyAsync: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, anchor: *mut ::core::ffi::c_void, purpose: SpatialAnchorExportPurpose, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
96 #[cfg(not(feature = "Foundation"))]
97 GetAnchorExportSufficiencyAsync: usize,
98 #[cfg(all(feature = "Foundation", feature = "Storage_Streams"))]
99 pub TryExportAnchorAsync: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, anchor: *mut ::core::ffi::c_void, purpose: SpatialAnchorExportPurpose, stream: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
100 #[cfg(not(all(feature = "Foundation", feature = "Storage_Streams")))]
101 TryExportAnchorAsync: usize,
102}
103#[doc(hidden)]
104#[repr(transparent)]
105pub struct ISpatialAnchorExporterStatics(::windows::core::IUnknown);
106unsafe impl ::windows::core::Interface for ISpatialAnchorExporterStatics {
107 type Vtable = ISpatialAnchorExporterStatics_Vtbl;
108}
109impl ::core::clone::Clone for ISpatialAnchorExporterStatics {
110 fn clone(&self) -> Self {
111 Self(self.0.clone())
112 }
113}
114unsafe impl ::windows::core::ComInterface for ISpatialAnchorExporterStatics {
115 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xed2507b8_2475_439c_85ff_7fed341fdc88);
116}
117#[repr(C)]
118#[doc(hidden)]
119pub struct ISpatialAnchorExporterStatics_Vtbl {
120 pub base__: ::windows::core::IInspectable_Vtbl,
121 pub GetDefault: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
122 #[cfg(feature = "Foundation")]
123 pub RequestAccessAsync: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
124 #[cfg(not(feature = "Foundation"))]
125 RequestAccessAsync: usize,
126}
127#[doc(hidden)]
128#[repr(transparent)]
129pub struct ISpatialAnchorManagerStatics(::windows::core::IUnknown);
130unsafe impl ::windows::core::Interface for ISpatialAnchorManagerStatics {
131 type Vtable = ISpatialAnchorManagerStatics_Vtbl;
132}
133impl ::core::clone::Clone for ISpatialAnchorManagerStatics {
134 fn clone(&self) -> Self {
135 Self(self.0.clone())
136 }
137}
138unsafe impl ::windows::core::ComInterface for ISpatialAnchorManagerStatics {
139 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x88e30eab_f3b7_420b_b086_8a80c07d910d);
140}
141#[repr(C)]
142#[doc(hidden)]
143pub struct ISpatialAnchorManagerStatics_Vtbl {
144 pub base__: ::windows::core::IInspectable_Vtbl,
145 #[cfg(feature = "Foundation")]
146 pub RequestStoreAsync: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
147 #[cfg(not(feature = "Foundation"))]
148 RequestStoreAsync: usize,
149}
150#[doc(hidden)]
151#[repr(transparent)]
152pub struct ISpatialAnchorRawCoordinateSystemAdjustedEventArgs(::windows::core::IUnknown);
153unsafe impl ::windows::core::Interface for ISpatialAnchorRawCoordinateSystemAdjustedEventArgs {
154 type Vtable = ISpatialAnchorRawCoordinateSystemAdjustedEventArgs_Vtbl;
155}
156impl ::core::clone::Clone for ISpatialAnchorRawCoordinateSystemAdjustedEventArgs {
157 fn clone(&self) -> Self {
158 Self(self.0.clone())
159 }
160}
161unsafe impl ::windows::core::ComInterface for ISpatialAnchorRawCoordinateSystemAdjustedEventArgs {
162 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xa1e81eb8_56c7_3117_a2e4_81e0fcf28e00);
163}
164#[repr(C)]
165#[doc(hidden)]
166pub struct ISpatialAnchorRawCoordinateSystemAdjustedEventArgs_Vtbl {
167 pub base__: ::windows::core::IInspectable_Vtbl,
168 #[cfg(feature = "Foundation_Numerics")]
169 pub OldRawCoordinateSystemToNewRawCoordinateSystemTransform: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::Foundation::Numerics::Matrix4x4) -> ::windows::core::HRESULT,
170 #[cfg(not(feature = "Foundation_Numerics"))]
171 OldRawCoordinateSystemToNewRawCoordinateSystemTransform: usize,
172}
173#[doc(hidden)]
174#[repr(transparent)]
175pub struct ISpatialAnchorStatics(::windows::core::IUnknown);
176unsafe impl ::windows::core::Interface for ISpatialAnchorStatics {
177 type Vtable = ISpatialAnchorStatics_Vtbl;
178}
179impl ::core::clone::Clone for ISpatialAnchorStatics {
180 fn clone(&self) -> Self {
181 Self(self.0.clone())
182 }
183}
184unsafe impl ::windows::core::ComInterface for ISpatialAnchorStatics {
185 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xa9928642_0174_311c_ae79_0e5107669f16);
186}
187#[repr(C)]
188#[doc(hidden)]
189pub struct ISpatialAnchorStatics_Vtbl {
190 pub base__: ::windows::core::IInspectable_Vtbl,
191 pub TryCreateRelativeTo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, coordinatesystem: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
192 #[cfg(feature = "Foundation_Numerics")]
193 pub TryCreateWithPositionRelativeTo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, coordinatesystem: *mut ::core::ffi::c_void, position: super::super::Foundation::Numerics::Vector3, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
194 #[cfg(not(feature = "Foundation_Numerics"))]
195 TryCreateWithPositionRelativeTo: usize,
196 #[cfg(feature = "Foundation_Numerics")]
197 pub TryCreateWithPositionAndOrientationRelativeTo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, coordinatesystem: *mut ::core::ffi::c_void, position: super::super::Foundation::Numerics::Vector3, orientation: super::super::Foundation::Numerics::Quaternion, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
198 #[cfg(not(feature = "Foundation_Numerics"))]
199 TryCreateWithPositionAndOrientationRelativeTo: usize,
200}
201#[doc(hidden)]
202#[repr(transparent)]
203pub struct ISpatialAnchorStore(::windows::core::IUnknown);
204unsafe impl ::windows::core::Interface for ISpatialAnchorStore {
205 type Vtable = ISpatialAnchorStore_Vtbl;
206}
207impl ::core::clone::Clone for ISpatialAnchorStore {
208 fn clone(&self) -> Self {
209 Self(self.0.clone())
210 }
211}
212unsafe impl ::windows::core::ComInterface for ISpatialAnchorStore {
213 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xb0bc3636_486a_3cb0_9e6f_1245165c4db6);
214}
215#[repr(C)]
216#[doc(hidden)]
217pub struct ISpatialAnchorStore_Vtbl {
218 pub base__: ::windows::core::IInspectable_Vtbl,
219 #[cfg(feature = "Foundation_Collections")]
220 pub GetAllSavedAnchors: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
221 #[cfg(not(feature = "Foundation_Collections"))]
222 GetAllSavedAnchors: usize,
223 pub TrySave: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: ::std::mem::MaybeUninit<::windows::core::HSTRING>, anchor: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
224 pub Remove: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: ::std::mem::MaybeUninit<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
225 pub Clear: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
226}
227#[doc(hidden)]
228#[cfg(feature = "deprecated")]
229#[repr(transparent)]
230pub struct ISpatialAnchorTransferManagerStatics(::windows::core::IUnknown);
231#[cfg(feature = "deprecated")]
232unsafe impl ::windows::core::Interface for ISpatialAnchorTransferManagerStatics {
233 type Vtable = ISpatialAnchorTransferManagerStatics_Vtbl;
234}
235#[cfg(feature = "deprecated")]
236impl ::core::clone::Clone for ISpatialAnchorTransferManagerStatics {
237 fn clone(&self) -> Self {
238 Self(self.0.clone())
239 }
240}
241#[cfg(feature = "deprecated")]
242unsafe impl ::windows::core::ComInterface for ISpatialAnchorTransferManagerStatics {
243 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x03bbf9b9_12d8_4bce_8835_c5df3ac0adab);
244}
245#[cfg(feature = "deprecated")]
246#[repr(C)]
247#[doc(hidden)]
248pub struct ISpatialAnchorTransferManagerStatics_Vtbl {
249 pub base__: ::windows::core::IInspectable_Vtbl,
250 #[cfg(all(feature = "Foundation_Collections", feature = "Storage_Streams", feature = "deprecated"))]
251 pub TryImportAnchorsAsync: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, stream: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
252 #[cfg(not(all(feature = "Foundation_Collections", feature = "Storage_Streams", feature = "deprecated")))]
253 TryImportAnchorsAsync: usize,
254 #[cfg(all(feature = "Foundation_Collections", feature = "Storage_Streams", feature = "deprecated"))]
255 pub TryExportAnchorsAsync: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, anchors: *mut ::core::ffi::c_void, stream: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
256 #[cfg(not(all(feature = "Foundation_Collections", feature = "Storage_Streams", feature = "deprecated")))]
257 TryExportAnchorsAsync: usize,
258 #[cfg(all(feature = "Foundation", feature = "deprecated"))]
259 pub RequestAccessAsync: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
260 #[cfg(not(all(feature = "Foundation", feature = "deprecated")))]
261 RequestAccessAsync: usize,
262}
263#[doc(hidden)]
264#[repr(transparent)]
265pub struct ISpatialBoundingVolume(::windows::core::IUnknown);
266unsafe impl ::windows::core::Interface for ISpatialBoundingVolume {
267 type Vtable = ISpatialBoundingVolume_Vtbl;
268}
269impl ::core::clone::Clone for ISpatialBoundingVolume {
270 fn clone(&self) -> Self {
271 Self(self.0.clone())
272 }
273}
274unsafe impl ::windows::core::ComInterface for ISpatialBoundingVolume {
275 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xfb2065da_68c3_33df_b7af_4c787207999c);
276}
277#[repr(C)]
278#[doc(hidden)]
279pub struct ISpatialBoundingVolume_Vtbl {
280 pub base__: ::windows::core::IInspectable_Vtbl,
281}
282#[doc(hidden)]
283#[repr(transparent)]
284pub struct ISpatialBoundingVolumeStatics(::windows::core::IUnknown);
285unsafe impl ::windows::core::Interface for ISpatialBoundingVolumeStatics {
286 type Vtable = ISpatialBoundingVolumeStatics_Vtbl;
287}
288impl ::core::clone::Clone for ISpatialBoundingVolumeStatics {
289 fn clone(&self) -> Self {
290 Self(self.0.clone())
291 }
292}
293unsafe impl ::windows::core::ComInterface for ISpatialBoundingVolumeStatics {
294 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x05889117_b3e1_36d8_b017_566181a5b196);
295}
296#[repr(C)]
297#[doc(hidden)]
298pub struct ISpatialBoundingVolumeStatics_Vtbl {
299 pub base__: ::windows::core::IInspectable_Vtbl,
300 #[cfg(feature = "Foundation_Numerics")]
301 pub FromBox: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, coordinatesystem: *mut ::core::ffi::c_void, r#box: SpatialBoundingBox, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
302 #[cfg(not(feature = "Foundation_Numerics"))]
303 FromBox: usize,
304 #[cfg(feature = "Foundation_Numerics")]
305 pub FromOrientedBox: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, coordinatesystem: *mut ::core::ffi::c_void, r#box: SpatialBoundingOrientedBox, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
306 #[cfg(not(feature = "Foundation_Numerics"))]
307 FromOrientedBox: usize,
308 #[cfg(feature = "Foundation_Numerics")]
309 pub FromSphere: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, coordinatesystem: *mut ::core::ffi::c_void, sphere: SpatialBoundingSphere, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
310 #[cfg(not(feature = "Foundation_Numerics"))]
311 FromSphere: usize,
312 #[cfg(feature = "Foundation_Numerics")]
313 pub FromFrustum: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, coordinatesystem: *mut ::core::ffi::c_void, frustum: SpatialBoundingFrustum, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
314 #[cfg(not(feature = "Foundation_Numerics"))]
315 FromFrustum: usize,
316}
317#[doc(hidden)]
318#[repr(transparent)]
319pub struct ISpatialCoordinateSystem(::windows::core::IUnknown);
320unsafe impl ::windows::core::Interface for ISpatialCoordinateSystem {
321 type Vtable = ISpatialCoordinateSystem_Vtbl;
322}
323impl ::core::clone::Clone for ISpatialCoordinateSystem {
324 fn clone(&self) -> Self {
325 Self(self.0.clone())
326 }
327}
328unsafe impl ::windows::core::ComInterface for ISpatialCoordinateSystem {
329 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x69ebca4b_60a3_3586_a653_59a7bd676d07);
330}
331#[repr(C)]
332#[doc(hidden)]
333pub struct ISpatialCoordinateSystem_Vtbl {
334 pub base__: ::windows::core::IInspectable_Vtbl,
335 #[cfg(feature = "Foundation_Numerics")]
336 pub TryGetTransformTo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, target: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
337 #[cfg(not(feature = "Foundation_Numerics"))]
338 TryGetTransformTo: usize,
339}
340#[doc(hidden)]
341#[repr(transparent)]
342pub struct ISpatialEntity(::windows::core::IUnknown);
343unsafe impl ::windows::core::Interface for ISpatialEntity {
344 type Vtable = ISpatialEntity_Vtbl;
345}
346impl ::core::clone::Clone for ISpatialEntity {
347 fn clone(&self) -> Self {
348 Self(self.0.clone())
349 }
350}
351unsafe impl ::windows::core::ComInterface for ISpatialEntity {
352 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x166de955_e1eb_454c_ba08_e6c0668ddc65);
353}
354#[repr(C)]
355#[doc(hidden)]
356pub struct ISpatialEntity_Vtbl {
357 pub base__: ::windows::core::IInspectable_Vtbl,
358 pub Id: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::std::mem::MaybeUninit<::windows::core::HSTRING>) -> ::windows::core::HRESULT,
359 pub Anchor: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
360 #[cfg(feature = "Foundation_Collections")]
361 pub Properties: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
362 #[cfg(not(feature = "Foundation_Collections"))]
363 Properties: usize,
364}
365#[doc(hidden)]
366#[repr(transparent)]
367pub struct ISpatialEntityAddedEventArgs(::windows::core::IUnknown);
368unsafe impl ::windows::core::Interface for ISpatialEntityAddedEventArgs {
369 type Vtable = ISpatialEntityAddedEventArgs_Vtbl;
370}
371impl ::core::clone::Clone for ISpatialEntityAddedEventArgs {
372 fn clone(&self) -> Self {
373 Self(self.0.clone())
374 }
375}
376unsafe impl ::windows::core::ComInterface for ISpatialEntityAddedEventArgs {
377 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xa397f49b_156a_4707_ac2c_d31d570ed399);
378}
379#[repr(C)]
380#[doc(hidden)]
381pub struct ISpatialEntityAddedEventArgs_Vtbl {
382 pub base__: ::windows::core::IInspectable_Vtbl,
383 pub Entity: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
384}
385#[doc(hidden)]
386#[repr(transparent)]
387pub struct ISpatialEntityFactory(::windows::core::IUnknown);
388unsafe impl ::windows::core::Interface for ISpatialEntityFactory {
389 type Vtable = ISpatialEntityFactory_Vtbl;
390}
391impl ::core::clone::Clone for ISpatialEntityFactory {
392 fn clone(&self) -> Self {
393 Self(self.0.clone())
394 }
395}
396unsafe impl ::windows::core::ComInterface for ISpatialEntityFactory {
397 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xe1f1e325_349f_4225_a2f3_4b01c15fe056);
398}
399#[repr(C)]
400#[doc(hidden)]
401pub struct ISpatialEntityFactory_Vtbl {
402 pub base__: ::windows::core::IInspectable_Vtbl,
403 pub CreateWithSpatialAnchor: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, spatialanchor: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
404 #[cfg(feature = "Foundation_Collections")]
405 pub CreateWithSpatialAnchorAndProperties: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, spatialanchor: *mut ::core::ffi::c_void, propertyset: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
406 #[cfg(not(feature = "Foundation_Collections"))]
407 CreateWithSpatialAnchorAndProperties: usize,
408}
409#[doc(hidden)]
410#[repr(transparent)]
411pub struct ISpatialEntityRemovedEventArgs(::windows::core::IUnknown);
412unsafe impl ::windows::core::Interface for ISpatialEntityRemovedEventArgs {
413 type Vtable = ISpatialEntityRemovedEventArgs_Vtbl;
414}
415impl ::core::clone::Clone for ISpatialEntityRemovedEventArgs {
416 fn clone(&self) -> Self {
417 Self(self.0.clone())
418 }
419}
420unsafe impl ::windows::core::ComInterface for ISpatialEntityRemovedEventArgs {
421 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x91741800_536d_4e9f_abf6_415b5444d651);
422}
423#[repr(C)]
424#[doc(hidden)]
425pub struct ISpatialEntityRemovedEventArgs_Vtbl {
426 pub base__: ::windows::core::IInspectable_Vtbl,
427 pub Entity: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
428}
429#[doc(hidden)]
430#[repr(transparent)]
431pub struct ISpatialEntityStore(::windows::core::IUnknown);
432unsafe impl ::windows::core::Interface for ISpatialEntityStore {
433 type Vtable = ISpatialEntityStore_Vtbl;
434}
435impl ::core::clone::Clone for ISpatialEntityStore {
436 fn clone(&self) -> Self {
437 Self(self.0.clone())
438 }
439}
440unsafe impl ::windows::core::ComInterface for ISpatialEntityStore {
441 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x329788ba_e513_4f06_889d_1be30ecf43e6);
442}
443#[repr(C)]
444#[doc(hidden)]
445pub struct ISpatialEntityStore_Vtbl {
446 pub base__: ::windows::core::IInspectable_Vtbl,
447 #[cfg(feature = "Foundation")]
448 pub SaveAsync: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, entity: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
449 #[cfg(not(feature = "Foundation"))]
450 SaveAsync: usize,
451 #[cfg(feature = "Foundation")]
452 pub RemoveAsync: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, entity: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
453 #[cfg(not(feature = "Foundation"))]
454 RemoveAsync: usize,
455 pub CreateEntityWatcher: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
456}
457#[doc(hidden)]
458#[repr(transparent)]
459pub struct ISpatialEntityStoreStatics(::windows::core::IUnknown);
460unsafe impl ::windows::core::Interface for ISpatialEntityStoreStatics {
461 type Vtable = ISpatialEntityStoreStatics_Vtbl;
462}
463impl ::core::clone::Clone for ISpatialEntityStoreStatics {
464 fn clone(&self) -> Self {
465 Self(self.0.clone())
466 }
467}
468unsafe impl ::windows::core::ComInterface for ISpatialEntityStoreStatics {
469 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x6b4b389e_7c50_4e92_8a62_4d1d4b7ccd3e);
470}
471#[repr(C)]
472#[doc(hidden)]
473pub struct ISpatialEntityStoreStatics_Vtbl {
474 pub base__: ::windows::core::IInspectable_Vtbl,
475 pub IsSupported: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
476 #[cfg(feature = "System_RemoteSystems")]
477 pub TryGetForRemoteSystemSession: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, session: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
478 #[cfg(not(feature = "System_RemoteSystems"))]
479 TryGetForRemoteSystemSession: usize,
480}
481#[doc(hidden)]
482#[repr(transparent)]
483pub struct ISpatialEntityUpdatedEventArgs(::windows::core::IUnknown);
484unsafe impl ::windows::core::Interface for ISpatialEntityUpdatedEventArgs {
485 type Vtable = ISpatialEntityUpdatedEventArgs_Vtbl;
486}
487impl ::core::clone::Clone for ISpatialEntityUpdatedEventArgs {
488 fn clone(&self) -> Self {
489 Self(self.0.clone())
490 }
491}
492unsafe impl ::windows::core::ComInterface for ISpatialEntityUpdatedEventArgs {
493 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xe5671766_627b_43cb_a49f_b3be6d47deed);
494}
495#[repr(C)]
496#[doc(hidden)]
497pub struct ISpatialEntityUpdatedEventArgs_Vtbl {
498 pub base__: ::windows::core::IInspectable_Vtbl,
499 pub Entity: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
500}
501#[doc(hidden)]
502#[repr(transparent)]
503pub struct ISpatialEntityWatcher(::windows::core::IUnknown);
504unsafe impl ::windows::core::Interface for ISpatialEntityWatcher {
505 type Vtable = ISpatialEntityWatcher_Vtbl;
506}
507impl ::core::clone::Clone for ISpatialEntityWatcher {
508 fn clone(&self) -> Self {
509 Self(self.0.clone())
510 }
511}
512unsafe impl ::windows::core::ComInterface for ISpatialEntityWatcher {
513 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xb3b85fa0_6d5e_4bbc_805d_5fe5b9ba1959);
514}
515#[repr(C)]
516#[doc(hidden)]
517pub struct ISpatialEntityWatcher_Vtbl {
518 pub base__: ::windows::core::IInspectable_Vtbl,
519 pub Status: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut SpatialEntityWatcherStatus) -> ::windows::core::HRESULT,
520 #[cfg(feature = "Foundation")]
521 pub Added: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: *mut ::core::ffi::c_void, result__: *mut super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
522 #[cfg(not(feature = "Foundation"))]
523 Added: usize,
524 #[cfg(feature = "Foundation")]
525 pub RemoveAdded: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
526 #[cfg(not(feature = "Foundation"))]
527 RemoveAdded: usize,
528 #[cfg(feature = "Foundation")]
529 pub Updated: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: *mut ::core::ffi::c_void, result__: *mut super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
530 #[cfg(not(feature = "Foundation"))]
531 Updated: usize,
532 #[cfg(feature = "Foundation")]
533 pub RemoveUpdated: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
534 #[cfg(not(feature = "Foundation"))]
535 RemoveUpdated: usize,
536 #[cfg(feature = "Foundation")]
537 pub Removed: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: *mut ::core::ffi::c_void, result__: *mut super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
538 #[cfg(not(feature = "Foundation"))]
539 Removed: usize,
540 #[cfg(feature = "Foundation")]
541 pub RemoveRemoved: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
542 #[cfg(not(feature = "Foundation"))]
543 RemoveRemoved: usize,
544 #[cfg(feature = "Foundation")]
545 pub EnumerationCompleted: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: *mut ::core::ffi::c_void, result__: *mut super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
546 #[cfg(not(feature = "Foundation"))]
547 EnumerationCompleted: usize,
548 #[cfg(feature = "Foundation")]
549 pub RemoveEnumerationCompleted: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, token: super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
550 #[cfg(not(feature = "Foundation"))]
551 RemoveEnumerationCompleted: usize,
552 pub Start: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
553 pub Stop: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
554}
555#[doc(hidden)]
556#[repr(transparent)]
557pub struct ISpatialLocation(::windows::core::IUnknown);
558unsafe impl ::windows::core::Interface for ISpatialLocation {
559 type Vtable = ISpatialLocation_Vtbl;
560}
561impl ::core::clone::Clone for ISpatialLocation {
562 fn clone(&self) -> Self {
563 Self(self.0.clone())
564 }
565}
566unsafe impl ::windows::core::ComInterface for ISpatialLocation {
567 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x1d81d29d_24a1_37d5_8fa1_39b4f9ad67e2);
568}
569#[repr(C)]
570#[doc(hidden)]
571pub struct ISpatialLocation_Vtbl {
572 pub base__: ::windows::core::IInspectable_Vtbl,
573 #[cfg(feature = "Foundation_Numerics")]
574 pub Position: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::Foundation::Numerics::Vector3) -> ::windows::core::HRESULT,
575 #[cfg(not(feature = "Foundation_Numerics"))]
576 Position: usize,
577 #[cfg(feature = "Foundation_Numerics")]
578 pub Orientation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::Foundation::Numerics::Quaternion) -> ::windows::core::HRESULT,
579 #[cfg(not(feature = "Foundation_Numerics"))]
580 Orientation: usize,
581 #[cfg(feature = "Foundation_Numerics")]
582 pub AbsoluteLinearVelocity: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::Foundation::Numerics::Vector3) -> ::windows::core::HRESULT,
583 #[cfg(not(feature = "Foundation_Numerics"))]
584 AbsoluteLinearVelocity: usize,
585 #[cfg(feature = "Foundation_Numerics")]
586 pub AbsoluteLinearAcceleration: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::Foundation::Numerics::Vector3) -> ::windows::core::HRESULT,
587 #[cfg(not(feature = "Foundation_Numerics"))]
588 AbsoluteLinearAcceleration: usize,
589 #[cfg(all(feature = "Foundation_Numerics", feature = "deprecated"))]
590 pub AbsoluteAngularVelocity: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::Foundation::Numerics::Quaternion) -> ::windows::core::HRESULT,
591 #[cfg(not(all(feature = "Foundation_Numerics", feature = "deprecated")))]
592 AbsoluteAngularVelocity: usize,
593 #[cfg(all(feature = "Foundation_Numerics", feature = "deprecated"))]
594 pub AbsoluteAngularAcceleration: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::Foundation::Numerics::Quaternion) -> ::windows::core::HRESULT,
595 #[cfg(not(all(feature = "Foundation_Numerics", feature = "deprecated")))]
596 AbsoluteAngularAcceleration: usize,
597}
598#[doc(hidden)]
599#[repr(transparent)]
600pub struct ISpatialLocation2(::windows::core::IUnknown);
601unsafe impl ::windows::core::Interface for ISpatialLocation2 {
602 type Vtable = ISpatialLocation2_Vtbl;
603}
604impl ::core::clone::Clone for ISpatialLocation2 {
605 fn clone(&self) -> Self {
606 Self(self.0.clone())
607 }
608}
609unsafe impl ::windows::core::ComInterface for ISpatialLocation2 {
610 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x117f2416_38a7_4a18_b404_ab8fabe1d78b);
611}
612#[repr(C)]
613#[doc(hidden)]
614pub struct ISpatialLocation2_Vtbl {
615 pub base__: ::windows::core::IInspectable_Vtbl,
616 #[cfg(feature = "Foundation_Numerics")]
617 pub AbsoluteAngularVelocityAxisAngle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::Foundation::Numerics::Vector3) -> ::windows::core::HRESULT,
618 #[cfg(not(feature = "Foundation_Numerics"))]
619 AbsoluteAngularVelocityAxisAngle: usize,
620 #[cfg(feature = "Foundation_Numerics")]
621 pub AbsoluteAngularAccelerationAxisAngle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::Foundation::Numerics::Vector3) -> ::windows::core::HRESULT,
622 #[cfg(not(feature = "Foundation_Numerics"))]
623 AbsoluteAngularAccelerationAxisAngle: usize,
624}
625#[doc(hidden)]
626#[repr(transparent)]
627pub struct ISpatialLocator(::windows::core::IUnknown);
628unsafe impl ::windows::core::Interface for ISpatialLocator {
629 type Vtable = ISpatialLocator_Vtbl;
630}
631impl ::core::clone::Clone for ISpatialLocator {
632 fn clone(&self) -> Self {
633 Self(self.0.clone())
634 }
635}
636unsafe impl ::windows::core::ComInterface for ISpatialLocator {
637 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xf6478925_9e0c_3bb6_997e_b64ecca24cf4);
638}
639#[repr(C)]
640#[doc(hidden)]
641pub struct ISpatialLocator_Vtbl {
642 pub base__: ::windows::core::IInspectable_Vtbl,
643 pub Locatability: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut SpatialLocatability) -> ::windows::core::HRESULT,
644 #[cfg(feature = "Foundation")]
645 pub LocatabilityChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: *mut ::core::ffi::c_void, result__: *mut super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
646 #[cfg(not(feature = "Foundation"))]
647 LocatabilityChanged: usize,
648 #[cfg(feature = "Foundation")]
649 pub RemoveLocatabilityChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, cookie: super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
650 #[cfg(not(feature = "Foundation"))]
651 RemoveLocatabilityChanged: usize,
652 #[cfg(feature = "Foundation")]
653 pub PositionalTrackingDeactivating: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: *mut ::core::ffi::c_void, result__: *mut super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
654 #[cfg(not(feature = "Foundation"))]
655 PositionalTrackingDeactivating: usize,
656 #[cfg(feature = "Foundation")]
657 pub RemovePositionalTrackingDeactivating: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, cookie: super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
658 #[cfg(not(feature = "Foundation"))]
659 RemovePositionalTrackingDeactivating: usize,
660 pub TryLocateAtTimestamp: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, timestamp: *mut ::core::ffi::c_void, coordinatesystem: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
661 pub CreateAttachedFrameOfReferenceAtCurrentHeading: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
662 #[cfg(feature = "Foundation_Numerics")]
663 pub CreateAttachedFrameOfReferenceAtCurrentHeadingWithPosition: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, relativeposition: super::super::Foundation::Numerics::Vector3, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
664 #[cfg(not(feature = "Foundation_Numerics"))]
665 CreateAttachedFrameOfReferenceAtCurrentHeadingWithPosition: usize,
666 #[cfg(feature = "Foundation_Numerics")]
667 pub CreateAttachedFrameOfReferenceAtCurrentHeadingWithPositionAndOrientation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, relativeposition: super::super::Foundation::Numerics::Vector3, relativeorientation: super::super::Foundation::Numerics::Quaternion, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
668 #[cfg(not(feature = "Foundation_Numerics"))]
669 CreateAttachedFrameOfReferenceAtCurrentHeadingWithPositionAndOrientation: usize,
670 #[cfg(feature = "Foundation_Numerics")]
671 pub CreateAttachedFrameOfReferenceAtCurrentHeadingWithPositionAndOrientationAndRelativeHeading: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, relativeposition: super::super::Foundation::Numerics::Vector3, relativeorientation: super::super::Foundation::Numerics::Quaternion, relativeheadinginradians: f64, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
672 #[cfg(not(feature = "Foundation_Numerics"))]
673 CreateAttachedFrameOfReferenceAtCurrentHeadingWithPositionAndOrientationAndRelativeHeading: usize,
674 pub CreateStationaryFrameOfReferenceAtCurrentLocation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
675 #[cfg(feature = "Foundation_Numerics")]
676 pub CreateStationaryFrameOfReferenceAtCurrentLocationWithPosition: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, relativeposition: super::super::Foundation::Numerics::Vector3, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
677 #[cfg(not(feature = "Foundation_Numerics"))]
678 CreateStationaryFrameOfReferenceAtCurrentLocationWithPosition: usize,
679 #[cfg(feature = "Foundation_Numerics")]
680 pub CreateStationaryFrameOfReferenceAtCurrentLocationWithPositionAndOrientation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, relativeposition: super::super::Foundation::Numerics::Vector3, relativeorientation: super::super::Foundation::Numerics::Quaternion, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
681 #[cfg(not(feature = "Foundation_Numerics"))]
682 CreateStationaryFrameOfReferenceAtCurrentLocationWithPositionAndOrientation: usize,
683 #[cfg(feature = "Foundation_Numerics")]
684 pub CreateStationaryFrameOfReferenceAtCurrentLocationWithPositionAndOrientationAndRelativeHeading: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, relativeposition: super::super::Foundation::Numerics::Vector3, relativeorientation: super::super::Foundation::Numerics::Quaternion, relativeheadinginradians: f64, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
685 #[cfg(not(feature = "Foundation_Numerics"))]
686 CreateStationaryFrameOfReferenceAtCurrentLocationWithPositionAndOrientationAndRelativeHeading: usize,
687}
688#[doc(hidden)]
689#[repr(transparent)]
690pub struct ISpatialLocatorAttachedFrameOfReference(::windows::core::IUnknown);
691unsafe impl ::windows::core::Interface for ISpatialLocatorAttachedFrameOfReference {
692 type Vtable = ISpatialLocatorAttachedFrameOfReference_Vtbl;
693}
694impl ::core::clone::Clone for ISpatialLocatorAttachedFrameOfReference {
695 fn clone(&self) -> Self {
696 Self(self.0.clone())
697 }
698}
699unsafe impl ::windows::core::ComInterface for ISpatialLocatorAttachedFrameOfReference {
700 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xe1774ef6_1f4f_499c_9625_ef5e6ed7a048);
701}
702#[repr(C)]
703#[doc(hidden)]
704pub struct ISpatialLocatorAttachedFrameOfReference_Vtbl {
705 pub base__: ::windows::core::IInspectable_Vtbl,
706 #[cfg(feature = "Foundation_Numerics")]
707 pub RelativePosition: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::Foundation::Numerics::Vector3) -> ::windows::core::HRESULT,
708 #[cfg(not(feature = "Foundation_Numerics"))]
709 RelativePosition: usize,
710 #[cfg(feature = "Foundation_Numerics")]
711 pub SetRelativePosition: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::super::Foundation::Numerics::Vector3) -> ::windows::core::HRESULT,
712 #[cfg(not(feature = "Foundation_Numerics"))]
713 SetRelativePosition: usize,
714 #[cfg(feature = "Foundation_Numerics")]
715 pub RelativeOrientation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::Foundation::Numerics::Quaternion) -> ::windows::core::HRESULT,
716 #[cfg(not(feature = "Foundation_Numerics"))]
717 RelativeOrientation: usize,
718 #[cfg(feature = "Foundation_Numerics")]
719 pub SetRelativeOrientation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: super::super::Foundation::Numerics::Quaternion) -> ::windows::core::HRESULT,
720 #[cfg(not(feature = "Foundation_Numerics"))]
721 SetRelativeOrientation: usize,
722 pub AdjustHeading: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, headingoffsetinradians: f64) -> ::windows::core::HRESULT,
723 pub GetStationaryCoordinateSystemAtTimestamp: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, timestamp: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
724 #[cfg(feature = "Foundation")]
725 pub TryGetRelativeHeadingAtTimestamp: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, timestamp: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
726 #[cfg(not(feature = "Foundation"))]
727 TryGetRelativeHeadingAtTimestamp: usize,
728}
729#[doc(hidden)]
730#[repr(transparent)]
731pub struct ISpatialLocatorPositionalTrackingDeactivatingEventArgs(::windows::core::IUnknown);
732unsafe impl ::windows::core::Interface for ISpatialLocatorPositionalTrackingDeactivatingEventArgs {
733 type Vtable = ISpatialLocatorPositionalTrackingDeactivatingEventArgs_Vtbl;
734}
735impl ::core::clone::Clone for ISpatialLocatorPositionalTrackingDeactivatingEventArgs {
736 fn clone(&self) -> Self {
737 Self(self.0.clone())
738 }
739}
740unsafe impl ::windows::core::ComInterface for ISpatialLocatorPositionalTrackingDeactivatingEventArgs {
741 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xb8a84063_e3f4_368b_9061_9ea9d1d6cc16);
742}
743#[repr(C)]
744#[doc(hidden)]
745pub struct ISpatialLocatorPositionalTrackingDeactivatingEventArgs_Vtbl {
746 pub base__: ::windows::core::IInspectable_Vtbl,
747 pub Canceled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
748 pub SetCanceled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: bool) -> ::windows::core::HRESULT,
749}
750#[doc(hidden)]
751#[repr(transparent)]
752pub struct ISpatialLocatorStatics(::windows::core::IUnknown);
753unsafe impl ::windows::core::Interface for ISpatialLocatorStatics {
754 type Vtable = ISpatialLocatorStatics_Vtbl;
755}
756impl ::core::clone::Clone for ISpatialLocatorStatics {
757 fn clone(&self) -> Self {
758 Self(self.0.clone())
759 }
760}
761unsafe impl ::windows::core::ComInterface for ISpatialLocatorStatics {
762 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xb76e3340_a7c2_361b_bb82_56e93b89b1bb);
763}
764#[repr(C)]
765#[doc(hidden)]
766pub struct ISpatialLocatorStatics_Vtbl {
767 pub base__: ::windows::core::IInspectable_Vtbl,
768 pub GetDefault: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
769}
770#[doc(hidden)]
771#[repr(transparent)]
772pub struct ISpatialStageFrameOfReference(::windows::core::IUnknown);
773unsafe impl ::windows::core::Interface for ISpatialStageFrameOfReference {
774 type Vtable = ISpatialStageFrameOfReference_Vtbl;
775}
776impl ::core::clone::Clone for ISpatialStageFrameOfReference {
777 fn clone(&self) -> Self {
778 Self(self.0.clone())
779 }
780}
781unsafe impl ::windows::core::ComInterface for ISpatialStageFrameOfReference {
782 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x7a8a3464_ad0d_4590_ab86_33062b674926);
783}
784#[repr(C)]
785#[doc(hidden)]
786pub struct ISpatialStageFrameOfReference_Vtbl {
787 pub base__: ::windows::core::IInspectable_Vtbl,
788 pub CoordinateSystem: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
789 pub MovementRange: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut SpatialMovementRange) -> ::windows::core::HRESULT,
790 pub LookDirectionRange: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut SpatialLookDirectionRange) -> ::windows::core::HRESULT,
791 pub GetCoordinateSystemAtCurrentLocation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, locator: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
792 #[cfg(feature = "Foundation_Numerics")]
793 pub TryGetMovementBounds: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, coordinatesystem: *mut ::core::ffi::c_void, result_size__: *mut u32, result__: *mut *mut super::super::Foundation::Numerics::Vector3) -> ::windows::core::HRESULT,
794 #[cfg(not(feature = "Foundation_Numerics"))]
795 TryGetMovementBounds: usize,
796}
797#[doc(hidden)]
798#[repr(transparent)]
799pub struct ISpatialStageFrameOfReferenceStatics(::windows::core::IUnknown);
800unsafe impl ::windows::core::Interface for ISpatialStageFrameOfReferenceStatics {
801 type Vtable = ISpatialStageFrameOfReferenceStatics_Vtbl;
802}
803impl ::core::clone::Clone for ISpatialStageFrameOfReferenceStatics {
804 fn clone(&self) -> Self {
805 Self(self.0.clone())
806 }
807}
808unsafe impl ::windows::core::ComInterface for ISpatialStageFrameOfReferenceStatics {
809 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xf78d5c4d_a0a4_499c_8d91_a8c965d40654);
810}
811#[repr(C)]
812#[doc(hidden)]
813pub struct ISpatialStageFrameOfReferenceStatics_Vtbl {
814 pub base__: ::windows::core::IInspectable_Vtbl,
815 pub Current: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
816 #[cfg(feature = "Foundation")]
817 pub CurrentChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handler: *mut ::core::ffi::c_void, result__: *mut super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
818 #[cfg(not(feature = "Foundation"))]
819 CurrentChanged: usize,
820 #[cfg(feature = "Foundation")]
821 pub RemoveCurrentChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, cookie: super::super::Foundation::EventRegistrationToken) -> ::windows::core::HRESULT,
822 #[cfg(not(feature = "Foundation"))]
823 RemoveCurrentChanged: usize,
824 #[cfg(feature = "Foundation")]
825 pub RequestNewStageAsync: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
826 #[cfg(not(feature = "Foundation"))]
827 RequestNewStageAsync: usize,
828}
829#[doc(hidden)]
830#[repr(transparent)]
831pub struct ISpatialStationaryFrameOfReference(::windows::core::IUnknown);
832unsafe impl ::windows::core::Interface for ISpatialStationaryFrameOfReference {
833 type Vtable = ISpatialStationaryFrameOfReference_Vtbl;
834}
835impl ::core::clone::Clone for ISpatialStationaryFrameOfReference {
836 fn clone(&self) -> Self {
837 Self(self.0.clone())
838 }
839}
840unsafe impl ::windows::core::ComInterface for ISpatialStationaryFrameOfReference {
841 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x09dbccb9_bcf8_3e7f_be7e_7edccbb178a8);
842}
843#[repr(C)]
844#[doc(hidden)]
845pub struct ISpatialStationaryFrameOfReference_Vtbl {
846 pub base__: ::windows::core::IInspectable_Vtbl,
847 pub CoordinateSystem: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
848}
849#[doc = "*Required features: `\"Perception_Spatial\"`*"]
850#[repr(transparent)]
851pub struct SpatialAnchor(::windows::core::IUnknown);
852impl SpatialAnchor {
853 pub fn CoordinateSystem(&self) -> ::windows::core::Result<SpatialCoordinateSystem> {
854 let this = self;
855 unsafe {
856 let mut result__ = ::windows::core::zeroed::<SpatialCoordinateSystem>();
857 (::windows::core::Interface::vtable(this).CoordinateSystem)(::windows::core::Interface::as_raw(this), &mut result__).from_abi(result__)
858 }
859 }
860 pub fn RawCoordinateSystem(&self) -> ::windows::core::Result<SpatialCoordinateSystem> {
861 let this = self;
862 unsafe {
863 let mut result__ = ::windows::core::zeroed::<SpatialCoordinateSystem>();
864 (::windows::core::Interface::vtable(this).RawCoordinateSystem)(::windows::core::Interface::as_raw(this), &mut result__).from_abi(result__)
865 }
866 }
867 #[doc = "*Required features: `\"Foundation\"`*"]
868 #[cfg(feature = "Foundation")]
869 pub fn RawCoordinateSystemAdjusted(&self, handler: &super::super::Foundation::TypedEventHandler<SpatialAnchor, SpatialAnchorRawCoordinateSystemAdjustedEventArgs>) -> ::windows::core::Result<super::super::Foundation::EventRegistrationToken> {
870 let this = self;
871 unsafe {
872 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::EventRegistrationToken>();
873 (::windows::core::Interface::vtable(this).RawCoordinateSystemAdjusted)(::windows::core::Interface::as_raw(this), ::core::mem::transmute_copy(handler), &mut result__).from_abi(result__)
874 }
875 }
876 #[doc = "*Required features: `\"Foundation\"`*"]
877 #[cfg(feature = "Foundation")]
878 pub fn RemoveRawCoordinateSystemAdjusted(&self, cookie: super::super::Foundation::EventRegistrationToken) -> ::windows::core::Result<()> {
879 let this = self;
880 unsafe { (::windows::core::Interface::vtable(this).RemoveRawCoordinateSystemAdjusted)(::windows::core::Interface::as_raw(this), cookie).ok() }
881 }
882 pub fn RemovedByUser(&self) -> ::windows::core::Result<bool> {
883 let this = &::windows::core::ComInterface::cast::<ISpatialAnchor2>(self)?;
884 unsafe {
885 let mut result__ = ::windows::core::zeroed::<bool>();
886 (::windows::core::Interface::vtable(this).RemovedByUser)(::windows::core::Interface::as_raw(this), &mut result__).from_abi(result__)
887 }
888 }
889 pub fn TryCreateRelativeTo(coordinatesystem: &SpatialCoordinateSystem) -> ::windows::core::Result<SpatialAnchor> {
890 Self::ISpatialAnchorStatics(|this| unsafe {
891 let mut result__ = ::windows::core::zeroed::<SpatialAnchor>();
892 (::windows::core::Interface::vtable(this).TryCreateRelativeTo)(::windows::core::Interface::as_raw(this), ::core::mem::transmute_copy(coordinatesystem), &mut result__).from_abi(result__)
893 })
894 }
895 #[doc = "*Required features: `\"Foundation_Numerics\"`*"]
896 #[cfg(feature = "Foundation_Numerics")]
897 pub fn TryCreateWithPositionRelativeTo(coordinatesystem: &SpatialCoordinateSystem, position: super::super::Foundation::Numerics::Vector3) -> ::windows::core::Result<SpatialAnchor> {
898 Self::ISpatialAnchorStatics(|this| unsafe {
899 let mut result__ = ::windows::core::zeroed::<SpatialAnchor>();
900 (::windows::core::Interface::vtable(this).TryCreateWithPositionRelativeTo)(::windows::core::Interface::as_raw(this), ::core::mem::transmute_copy(coordinatesystem), position, &mut result__).from_abi(result__)
901 })
902 }
903 #[doc = "*Required features: `\"Foundation_Numerics\"`*"]
904 #[cfg(feature = "Foundation_Numerics")]
905 pub fn TryCreateWithPositionAndOrientationRelativeTo(coordinatesystem: &SpatialCoordinateSystem, position: super::super::Foundation::Numerics::Vector3, orientation: super::super::Foundation::Numerics::Quaternion) -> ::windows::core::Result<SpatialAnchor> {
906 Self::ISpatialAnchorStatics(|this| unsafe {
907 let mut result__ = ::windows::core::zeroed::<SpatialAnchor>();
908 (::windows::core::Interface::vtable(this).TryCreateWithPositionAndOrientationRelativeTo)(::windows::core::Interface::as_raw(this), ::core::mem::transmute_copy(coordinatesystem), position, orientation, &mut result__).from_abi(result__)
909 })
910 }
911 #[doc(hidden)]
912 pub fn ISpatialAnchorStatics<R, F: FnOnce(&ISpatialAnchorStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
913 static SHARED: ::windows::imp::FactoryCache<SpatialAnchor, ISpatialAnchorStatics> = ::windows::imp::FactoryCache::new();
914 SHARED.call(callback)
915 }
916}
917impl ::core::cmp::PartialEq for SpatialAnchor {
918 fn eq(&self, other: &Self) -> bool {
919 self.0 == other.0
920 }
921}
922impl ::core::cmp::Eq for SpatialAnchor {}
923impl ::core::fmt::Debug for SpatialAnchor {
924 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
925 f.debug_tuple("SpatialAnchor").field(&self.0).finish()
926 }
927}
928impl ::windows::core::RuntimeType for SpatialAnchor {
929 const SIGNATURE: ::windows::imp::ConstBuffer = ::windows::imp::ConstBuffer::from_slice(b"rc(Windows.Perception.Spatial.SpatialAnchor;{0529e5ce-1d34-3702-bcec-eabff578a869})");
930}
931impl ::core::clone::Clone for SpatialAnchor {
932 fn clone(&self) -> Self {
933 Self(self.0.clone())
934 }
935}
936unsafe impl ::windows::core::Interface for SpatialAnchor {
937 type Vtable = ISpatialAnchor_Vtbl;
938}
939unsafe impl ::windows::core::ComInterface for SpatialAnchor {
940 const IID: ::windows::core::GUID = <ISpatialAnchor as ::windows::core::ComInterface>::IID;
941}
942impl ::windows::core::RuntimeName for SpatialAnchor {
943 const NAME: &'static str = "Windows.Perception.Spatial.SpatialAnchor";
944}
945::windows::imp::interface_hierarchy!(SpatialAnchor, ::windows::core::IUnknown, ::windows::core::IInspectable);
946unsafe impl ::core::marker::Send for SpatialAnchor {}
947unsafe impl ::core::marker::Sync for SpatialAnchor {}
948#[doc = "*Required features: `\"Perception_Spatial\"`*"]
949#[repr(transparent)]
950pub struct SpatialAnchorExportSufficiency(::windows::core::IUnknown);
951impl SpatialAnchorExportSufficiency {
952 pub fn IsMinimallySufficient(&self) -> ::windows::core::Result<bool> {
953 let this = self;
954 unsafe {
955 let mut result__ = ::windows::core::zeroed::<bool>();
956 (::windows::core::Interface::vtable(this).IsMinimallySufficient)(::windows::core::Interface::as_raw(this), &mut result__).from_abi(result__)
957 }
958 }
959 pub fn SufficiencyLevel(&self) -> ::windows::core::Result<f64> {
960 let this = self;
961 unsafe {
962 let mut result__ = ::windows::core::zeroed::<f64>();
963 (::windows::core::Interface::vtable(this).SufficiencyLevel)(::windows::core::Interface::as_raw(this), &mut result__).from_abi(result__)
964 }
965 }
966 pub fn RecommendedSufficiencyLevel(&self) -> ::windows::core::Result<f64> {
967 let this = self;
968 unsafe {
969 let mut result__ = ::windows::core::zeroed::<f64>();
970 (::windows::core::Interface::vtable(this).RecommendedSufficiencyLevel)(::windows::core::Interface::as_raw(this), &mut result__).from_abi(result__)
971 }
972 }
973}
974impl ::core::cmp::PartialEq for SpatialAnchorExportSufficiency {
975 fn eq(&self, other: &Self) -> bool {
976 self.0 == other.0
977 }
978}
979impl ::core::cmp::Eq for SpatialAnchorExportSufficiency {}
980impl ::core::fmt::Debug for SpatialAnchorExportSufficiency {
981 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
982 f.debug_tuple("SpatialAnchorExportSufficiency").field(&self.0).finish()
983 }
984}
985impl ::windows::core::RuntimeType for SpatialAnchorExportSufficiency {
986 const SIGNATURE: ::windows::imp::ConstBuffer = ::windows::imp::ConstBuffer::from_slice(b"rc(Windows.Perception.Spatial.SpatialAnchorExportSufficiency;{77c25b2b-3409-4088-b91b-fdfd05d1648f})");
987}
988impl ::core::clone::Clone for SpatialAnchorExportSufficiency {
989 fn clone(&self) -> Self {
990 Self(self.0.clone())
991 }
992}
993unsafe impl ::windows::core::Interface for SpatialAnchorExportSufficiency {
994 type Vtable = ISpatialAnchorExportSufficiency_Vtbl;
995}
996unsafe impl ::windows::core::ComInterface for SpatialAnchorExportSufficiency {
997 const IID: ::windows::core::GUID = <ISpatialAnchorExportSufficiency as ::windows::core::ComInterface>::IID;
998}
999impl ::windows::core::RuntimeName for SpatialAnchorExportSufficiency {
1000 const NAME: &'static str = "Windows.Perception.Spatial.SpatialAnchorExportSufficiency";
1001}
1002::windows::imp::interface_hierarchy!(SpatialAnchorExportSufficiency, ::windows::core::IUnknown, ::windows::core::IInspectable);
1003unsafe impl ::core::marker::Send for SpatialAnchorExportSufficiency {}
1004unsafe impl ::core::marker::Sync for SpatialAnchorExportSufficiency {}
1005#[doc = "*Required features: `\"Perception_Spatial\"`*"]
1006#[repr(transparent)]
1007pub struct SpatialAnchorExporter(::windows::core::IUnknown);
1008impl SpatialAnchorExporter {
1009 #[doc = "*Required features: `\"Foundation\"`*"]
1010 #[cfg(feature = "Foundation")]
1011 pub fn GetAnchorExportSufficiencyAsync(&self, anchor: &SpatialAnchor, purpose: SpatialAnchorExportPurpose) -> ::windows::core::Result<super::super::Foundation::IAsyncOperation<SpatialAnchorExportSufficiency>> {
1012 let this = self;
1013 unsafe {
1014 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::IAsyncOperation<SpatialAnchorExportSufficiency>>();
1015 (::windows::core::Interface::vtable(this).GetAnchorExportSufficiencyAsync)(::windows::core::Interface::as_raw(this), ::core::mem::transmute_copy(anchor), purpose, &mut result__).from_abi(result__)
1016 }
1017 }
1018 #[doc = "*Required features: `\"Foundation\"`, `\"Storage_Streams\"`*"]
1019 #[cfg(all(feature = "Foundation", feature = "Storage_Streams"))]
1020 pub fn TryExportAnchorAsync<P0>(&self, anchor: &SpatialAnchor, purpose: SpatialAnchorExportPurpose, stream: P0) -> ::windows::core::Result<super::super::Foundation::IAsyncOperation<bool>>
1021 where
1022 P0: ::windows::core::TryIntoParam<super::super::Storage::Streams::IOutputStream>,
1023 {
1024 let this = self;
1025 unsafe {
1026 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::IAsyncOperation<bool>>();
1027 (::windows::core::Interface::vtable(this).TryExportAnchorAsync)(::windows::core::Interface::as_raw(this), ::core::mem::transmute_copy(anchor), purpose, stream.try_into_param()?.abi(), &mut result__).from_abi(result__)
1028 }
1029 }
1030 pub fn GetDefault() -> ::windows::core::Result<SpatialAnchorExporter> {
1031 Self::ISpatialAnchorExporterStatics(|this| unsafe {
1032 let mut result__ = ::windows::core::zeroed::<SpatialAnchorExporter>();
1033 (::windows::core::Interface::vtable(this).GetDefault)(::windows::core::Interface::as_raw(this), &mut result__).from_abi(result__)
1034 })
1035 }
1036 #[doc = "*Required features: `\"Foundation\"`*"]
1037 #[cfg(feature = "Foundation")]
1038 pub fn RequestAccessAsync() -> ::windows::core::Result<super::super::Foundation::IAsyncOperation<SpatialPerceptionAccessStatus>> {
1039 Self::ISpatialAnchorExporterStatics(|this| unsafe {
1040 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::IAsyncOperation<SpatialPerceptionAccessStatus>>();
1041 (::windows::core::Interface::vtable(this).RequestAccessAsync)(::windows::core::Interface::as_raw(this), &mut result__).from_abi(result__)
1042 })
1043 }
1044 #[doc(hidden)]
1045 pub fn ISpatialAnchorExporterStatics<R, F: FnOnce(&ISpatialAnchorExporterStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
1046 static SHARED: ::windows::imp::FactoryCache<SpatialAnchorExporter, ISpatialAnchorExporterStatics> = ::windows::imp::FactoryCache::new();
1047 SHARED.call(callback)
1048 }
1049}
1050impl ::core::cmp::PartialEq for SpatialAnchorExporter {
1051 fn eq(&self, other: &Self) -> bool {
1052 self.0 == other.0
1053 }
1054}
1055impl ::core::cmp::Eq for SpatialAnchorExporter {}
1056impl ::core::fmt::Debug for SpatialAnchorExporter {
1057 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1058 f.debug_tuple("SpatialAnchorExporter").field(&self.0).finish()
1059 }
1060}
1061impl ::windows::core::RuntimeType for SpatialAnchorExporter {
1062 const SIGNATURE: ::windows::imp::ConstBuffer = ::windows::imp::ConstBuffer::from_slice(b"rc(Windows.Perception.Spatial.SpatialAnchorExporter;{9a2a4338-24fb-4269-89c5-88304aeef20f})");
1063}
1064impl ::core::clone::Clone for SpatialAnchorExporter {
1065 fn clone(&self) -> Self {
1066 Self(self.0.clone())
1067 }
1068}
1069unsafe impl ::windows::core::Interface for SpatialAnchorExporter {
1070 type Vtable = ISpatialAnchorExporter_Vtbl;
1071}
1072unsafe impl ::windows::core::ComInterface for SpatialAnchorExporter {
1073 const IID: ::windows::core::GUID = <ISpatialAnchorExporter as ::windows::core::ComInterface>::IID;
1074}
1075impl ::windows::core::RuntimeName for SpatialAnchorExporter {
1076 const NAME: &'static str = "Windows.Perception.Spatial.SpatialAnchorExporter";
1077}
1078::windows::imp::interface_hierarchy!(SpatialAnchorExporter, ::windows::core::IUnknown, ::windows::core::IInspectable);
1079unsafe impl ::core::marker::Send for SpatialAnchorExporter {}
1080unsafe impl ::core::marker::Sync for SpatialAnchorExporter {}
1081#[doc = "*Required features: `\"Perception_Spatial\"`*"]
1082pub struct SpatialAnchorManager;
1083impl SpatialAnchorManager {
1084 #[doc = "*Required features: `\"Foundation\"`*"]
1085 #[cfg(feature = "Foundation")]
1086 pub fn RequestStoreAsync() -> ::windows::core::Result<super::super::Foundation::IAsyncOperation<SpatialAnchorStore>> {
1087 Self::ISpatialAnchorManagerStatics(|this| unsafe {
1088 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::IAsyncOperation<SpatialAnchorStore>>();
1089 (::windows::core::Interface::vtable(this).RequestStoreAsync)(::windows::core::Interface::as_raw(this), &mut result__).from_abi(result__)
1090 })
1091 }
1092 #[doc(hidden)]
1093 pub fn ISpatialAnchorManagerStatics<R, F: FnOnce(&ISpatialAnchorManagerStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
1094 static SHARED: ::windows::imp::FactoryCache<SpatialAnchorManager, ISpatialAnchorManagerStatics> = ::windows::imp::FactoryCache::new();
1095 SHARED.call(callback)
1096 }
1097}
1098impl ::windows::core::RuntimeName for SpatialAnchorManager {
1099 const NAME: &'static str = "Windows.Perception.Spatial.SpatialAnchorManager";
1100}
1101#[doc = "*Required features: `\"Perception_Spatial\"`*"]
1102#[repr(transparent)]
1103pub struct SpatialAnchorRawCoordinateSystemAdjustedEventArgs(::windows::core::IUnknown);
1104impl SpatialAnchorRawCoordinateSystemAdjustedEventArgs {
1105 #[doc = "*Required features: `\"Foundation_Numerics\"`*"]
1106 #[cfg(feature = "Foundation_Numerics")]
1107 pub fn OldRawCoordinateSystemToNewRawCoordinateSystemTransform(&self) -> ::windows::core::Result<super::super::Foundation::Numerics::Matrix4x4> {
1108 let this = self;
1109 unsafe {
1110 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::Numerics::Matrix4x4>();
1111 (::windows::core::Interface::vtable(this).OldRawCoordinateSystemToNewRawCoordinateSystemTransform)(::windows::core::Interface::as_raw(this), &mut result__).from_abi(result__)
1112 }
1113 }
1114}
1115impl ::core::cmp::PartialEq for SpatialAnchorRawCoordinateSystemAdjustedEventArgs {
1116 fn eq(&self, other: &Self) -> bool {
1117 self.0 == other.0
1118 }
1119}
1120impl ::core::cmp::Eq for SpatialAnchorRawCoordinateSystemAdjustedEventArgs {}
1121impl ::core::fmt::Debug for SpatialAnchorRawCoordinateSystemAdjustedEventArgs {
1122 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1123 f.debug_tuple("SpatialAnchorRawCoordinateSystemAdjustedEventArgs").field(&self.0).finish()
1124 }
1125}
1126impl ::windows::core::RuntimeType for SpatialAnchorRawCoordinateSystemAdjustedEventArgs {
1127 const SIGNATURE: ::windows::imp::ConstBuffer = ::windows::imp::ConstBuffer::from_slice(b"rc(Windows.Perception.Spatial.SpatialAnchorRawCoordinateSystemAdjustedEventArgs;{a1e81eb8-56c7-3117-a2e4-81e0fcf28e00})");
1128}
1129impl ::core::clone::Clone for SpatialAnchorRawCoordinateSystemAdjustedEventArgs {
1130 fn clone(&self) -> Self {
1131 Self(self.0.clone())
1132 }
1133}
1134unsafe impl ::windows::core::Interface for SpatialAnchorRawCoordinateSystemAdjustedEventArgs {
1135 type Vtable = ISpatialAnchorRawCoordinateSystemAdjustedEventArgs_Vtbl;
1136}
1137unsafe impl ::windows::core::ComInterface for SpatialAnchorRawCoordinateSystemAdjustedEventArgs {
1138 const IID: ::windows::core::GUID = <ISpatialAnchorRawCoordinateSystemAdjustedEventArgs as ::windows::core::ComInterface>::IID;
1139}
1140impl ::windows::core::RuntimeName for SpatialAnchorRawCoordinateSystemAdjustedEventArgs {
1141 const NAME: &'static str = "Windows.Perception.Spatial.SpatialAnchorRawCoordinateSystemAdjustedEventArgs";
1142}
1143::windows::imp::interface_hierarchy!(SpatialAnchorRawCoordinateSystemAdjustedEventArgs, ::windows::core::IUnknown, ::windows::core::IInspectable);
1144unsafe impl ::core::marker::Send for SpatialAnchorRawCoordinateSystemAdjustedEventArgs {}
1145unsafe impl ::core::marker::Sync for SpatialAnchorRawCoordinateSystemAdjustedEventArgs {}
1146#[doc = "*Required features: `\"Perception_Spatial\"`*"]
1147#[repr(transparent)]
1148pub struct SpatialAnchorStore(::windows::core::IUnknown);
1149impl SpatialAnchorStore {
1150 #[doc = "*Required features: `\"Foundation_Collections\"`*"]
1151 #[cfg(feature = "Foundation_Collections")]
1152 pub fn GetAllSavedAnchors(&self) -> ::windows::core::Result<super::super::Foundation::Collections::IMapView<::windows::core::HSTRING, SpatialAnchor>> {
1153 let this = self;
1154 unsafe {
1155 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::Collections::IMapView<::windows::core::HSTRING, SpatialAnchor>>();
1156 (::windows::core::Interface::vtable(this).GetAllSavedAnchors)(::windows::core::Interface::as_raw(this), &mut result__).from_abi(result__)
1157 }
1158 }
1159 pub fn TrySave(&self, id: &::windows::core::HSTRING, anchor: &SpatialAnchor) -> ::windows::core::Result<bool> {
1160 let this = self;
1161 unsafe {
1162 let mut result__ = ::windows::core::zeroed::<bool>();
1163 (::windows::core::Interface::vtable(this).TrySave)(::windows::core::Interface::as_raw(this), ::core::mem::transmute_copy(id), ::core::mem::transmute_copy(anchor), &mut result__).from_abi(result__)
1164 }
1165 }
1166 pub fn Remove(&self, id: &::windows::core::HSTRING) -> ::windows::core::Result<()> {
1167 let this = self;
1168 unsafe { (::windows::core::Interface::vtable(this).Remove)(::windows::core::Interface::as_raw(this), ::core::mem::transmute_copy(id)).ok() }
1169 }
1170 pub fn Clear(&self) -> ::windows::core::Result<()> {
1171 let this = self;
1172 unsafe { (::windows::core::Interface::vtable(this).Clear)(::windows::core::Interface::as_raw(this)).ok() }
1173 }
1174}
1175impl ::core::cmp::PartialEq for SpatialAnchorStore {
1176 fn eq(&self, other: &Self) -> bool {
1177 self.0 == other.0
1178 }
1179}
1180impl ::core::cmp::Eq for SpatialAnchorStore {}
1181impl ::core::fmt::Debug for SpatialAnchorStore {
1182 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1183 f.debug_tuple("SpatialAnchorStore").field(&self.0).finish()
1184 }
1185}
1186impl ::windows::core::RuntimeType for SpatialAnchorStore {
1187 const SIGNATURE: ::windows::imp::ConstBuffer = ::windows::imp::ConstBuffer::from_slice(b"rc(Windows.Perception.Spatial.SpatialAnchorStore;{b0bc3636-486a-3cb0-9e6f-1245165c4db6})");
1188}
1189impl ::core::clone::Clone for SpatialAnchorStore {
1190 fn clone(&self) -> Self {
1191 Self(self.0.clone())
1192 }
1193}
1194unsafe impl ::windows::core::Interface for SpatialAnchorStore {
1195 type Vtable = ISpatialAnchorStore_Vtbl;
1196}
1197unsafe impl ::windows::core::ComInterface for SpatialAnchorStore {
1198 const IID: ::windows::core::GUID = <ISpatialAnchorStore as ::windows::core::ComInterface>::IID;
1199}
1200impl ::windows::core::RuntimeName for SpatialAnchorStore {
1201 const NAME: &'static str = "Windows.Perception.Spatial.SpatialAnchorStore";
1202}
1203::windows::imp::interface_hierarchy!(SpatialAnchorStore, ::windows::core::IUnknown, ::windows::core::IInspectable);
1204unsafe impl ::core::marker::Send for SpatialAnchorStore {}
1205unsafe impl ::core::marker::Sync for SpatialAnchorStore {}
1206#[doc = "*Required features: `\"Perception_Spatial\"`, `\"deprecated\"`*"]
1207#[cfg(feature = "deprecated")]
1208pub struct SpatialAnchorTransferManager;
1209#[cfg(feature = "deprecated")]
1210impl SpatialAnchorTransferManager {
1211 #[doc = "*Required features: `\"Foundation_Collections\"`, `\"Storage_Streams\"`, `\"deprecated\"`*"]
1212 #[cfg(all(feature = "Foundation_Collections", feature = "Storage_Streams", feature = "deprecated"))]
1213 pub fn TryImportAnchorsAsync<P0>(stream: P0) -> ::windows::core::Result<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IMapView<::windows::core::HSTRING, SpatialAnchor>>>
1214 where
1215 P0: ::windows::core::TryIntoParam<super::super::Storage::Streams::IInputStream>,
1216 {
1217 Self::ISpatialAnchorTransferManagerStatics(|this| unsafe {
1218 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IMapView<::windows::core::HSTRING, SpatialAnchor>>>();
1219 (::windows::core::Interface::vtable(this).TryImportAnchorsAsync)(::windows::core::Interface::as_raw(this), stream.try_into_param()?.abi(), &mut result__).from_abi(result__)
1220 })
1221 }
1222 #[doc = "*Required features: `\"Foundation_Collections\"`, `\"Storage_Streams\"`, `\"deprecated\"`*"]
1223 #[cfg(all(feature = "Foundation_Collections", feature = "Storage_Streams", feature = "deprecated"))]
1224 pub fn TryExportAnchorsAsync<P0, P1>(anchors: P0, stream: P1) -> ::windows::core::Result<super::super::Foundation::IAsyncOperation<bool>>
1225 where
1226 P0: ::windows::core::TryIntoParam<super::super::Foundation::Collections::IIterable<super::super::Foundation::Collections::IKeyValuePair<::windows::core::HSTRING, SpatialAnchor>>>,
1227 P1: ::windows::core::TryIntoParam<super::super::Storage::Streams::IOutputStream>,
1228 {
1229 Self::ISpatialAnchorTransferManagerStatics(|this| unsafe {
1230 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::IAsyncOperation<bool>>();
1231 (::windows::core::Interface::vtable(this).TryExportAnchorsAsync)(::windows::core::Interface::as_raw(this), anchors.try_into_param()?.abi(), stream.try_into_param()?.abi(), &mut result__).from_abi(result__)
1232 })
1233 }
1234 #[doc = "*Required features: `\"Foundation\"`, `\"deprecated\"`*"]
1235 #[cfg(all(feature = "Foundation", feature = "deprecated"))]
1236 pub fn RequestAccessAsync() -> ::windows::core::Result<super::super::Foundation::IAsyncOperation<SpatialPerceptionAccessStatus>> {
1237 Self::ISpatialAnchorTransferManagerStatics(|this| unsafe {
1238 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::IAsyncOperation<SpatialPerceptionAccessStatus>>();
1239 (::windows::core::Interface::vtable(this).RequestAccessAsync)(::windows::core::Interface::as_raw(this), &mut result__).from_abi(result__)
1240 })
1241 }
1242 #[doc(hidden)]
1243 #[cfg(feature = "deprecated")]
1244 pub fn ISpatialAnchorTransferManagerStatics<R, F: FnOnce(&ISpatialAnchorTransferManagerStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
1245 static SHARED: ::windows::imp::FactoryCache<SpatialAnchorTransferManager, ISpatialAnchorTransferManagerStatics> = ::windows::imp::FactoryCache::new();
1246 SHARED.call(callback)
1247 }
1248}
1249#[cfg(feature = "deprecated")]
1250impl ::windows::core::RuntimeName for SpatialAnchorTransferManager {
1251 const NAME: &'static str = "Windows.Perception.Spatial.SpatialAnchorTransferManager";
1252}
1253#[doc = "*Required features: `\"Perception_Spatial\"`*"]
1254#[repr(transparent)]
1255pub struct SpatialBoundingVolume(::windows::core::IUnknown);
1256impl SpatialBoundingVolume {
1257 #[doc = "*Required features: `\"Foundation_Numerics\"`*"]
1258 #[cfg(feature = "Foundation_Numerics")]
1259 pub fn FromBox(coordinatesystem: &SpatialCoordinateSystem, r#box: SpatialBoundingBox) -> ::windows::core::Result<SpatialBoundingVolume> {
1260 Self::ISpatialBoundingVolumeStatics(|this| unsafe {
1261 let mut result__ = ::windows::core::zeroed::<SpatialBoundingVolume>();
1262 (::windows::core::Interface::vtable(this).FromBox)(::windows::core::Interface::as_raw(this), ::core::mem::transmute_copy(coordinatesystem), r#box, &mut result__).from_abi(result__)
1263 })
1264 }
1265 #[doc = "*Required features: `\"Foundation_Numerics\"`*"]
1266 #[cfg(feature = "Foundation_Numerics")]
1267 pub fn FromOrientedBox(coordinatesystem: &SpatialCoordinateSystem, r#box: SpatialBoundingOrientedBox) -> ::windows::core::Result<SpatialBoundingVolume> {
1268 Self::ISpatialBoundingVolumeStatics(|this| unsafe {
1269 let mut result__ = ::windows::core::zeroed::<SpatialBoundingVolume>();
1270 (::windows::core::Interface::vtable(this).FromOrientedBox)(::windows::core::Interface::as_raw(this), ::core::mem::transmute_copy(coordinatesystem), r#box, &mut result__).from_abi(result__)
1271 })
1272 }
1273 #[doc = "*Required features: `\"Foundation_Numerics\"`*"]
1274 #[cfg(feature = "Foundation_Numerics")]
1275 pub fn FromSphere(coordinatesystem: &SpatialCoordinateSystem, sphere: SpatialBoundingSphere) -> ::windows::core::Result<SpatialBoundingVolume> {
1276 Self::ISpatialBoundingVolumeStatics(|this| unsafe {
1277 let mut result__ = ::windows::core::zeroed::<SpatialBoundingVolume>();
1278 (::windows::core::Interface::vtable(this).FromSphere)(::windows::core::Interface::as_raw(this), ::core::mem::transmute_copy(coordinatesystem), sphere, &mut result__).from_abi(result__)
1279 })
1280 }
1281 #[doc = "*Required features: `\"Foundation_Numerics\"`*"]
1282 #[cfg(feature = "Foundation_Numerics")]
1283 pub fn FromFrustum(coordinatesystem: &SpatialCoordinateSystem, frustum: SpatialBoundingFrustum) -> ::windows::core::Result<SpatialBoundingVolume> {
1284 Self::ISpatialBoundingVolumeStatics(|this| unsafe {
1285 let mut result__ = ::windows::core::zeroed::<SpatialBoundingVolume>();
1286 (::windows::core::Interface::vtable(this).FromFrustum)(::windows::core::Interface::as_raw(this), ::core::mem::transmute_copy(coordinatesystem), frustum, &mut result__).from_abi(result__)
1287 })
1288 }
1289 #[doc(hidden)]
1290 pub fn ISpatialBoundingVolumeStatics<R, F: FnOnce(&ISpatialBoundingVolumeStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
1291 static SHARED: ::windows::imp::FactoryCache<SpatialBoundingVolume, ISpatialBoundingVolumeStatics> = ::windows::imp::FactoryCache::new();
1292 SHARED.call(callback)
1293 }
1294}
1295impl ::core::cmp::PartialEq for SpatialBoundingVolume {
1296 fn eq(&self, other: &Self) -> bool {
1297 self.0 == other.0
1298 }
1299}
1300impl ::core::cmp::Eq for SpatialBoundingVolume {}
1301impl ::core::fmt::Debug for SpatialBoundingVolume {
1302 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1303 f.debug_tuple("SpatialBoundingVolume").field(&self.0).finish()
1304 }
1305}
1306impl ::windows::core::RuntimeType for SpatialBoundingVolume {
1307 const SIGNATURE: ::windows::imp::ConstBuffer = ::windows::imp::ConstBuffer::from_slice(b"rc(Windows.Perception.Spatial.SpatialBoundingVolume;{fb2065da-68c3-33df-b7af-4c787207999c})");
1308}
1309impl ::core::clone::Clone for SpatialBoundingVolume {
1310 fn clone(&self) -> Self {
1311 Self(self.0.clone())
1312 }
1313}
1314unsafe impl ::windows::core::Interface for SpatialBoundingVolume {
1315 type Vtable = ISpatialBoundingVolume_Vtbl;
1316}
1317unsafe impl ::windows::core::ComInterface for SpatialBoundingVolume {
1318 const IID: ::windows::core::GUID = <ISpatialBoundingVolume as ::windows::core::ComInterface>::IID;
1319}
1320impl ::windows::core::RuntimeName for SpatialBoundingVolume {
1321 const NAME: &'static str = "Windows.Perception.Spatial.SpatialBoundingVolume";
1322}
1323::windows::imp::interface_hierarchy!(SpatialBoundingVolume, ::windows::core::IUnknown, ::windows::core::IInspectable);
1324unsafe impl ::core::marker::Send for SpatialBoundingVolume {}
1325unsafe impl ::core::marker::Sync for SpatialBoundingVolume {}
1326#[doc = "*Required features: `\"Perception_Spatial\"`*"]
1327#[repr(transparent)]
1328pub struct SpatialCoordinateSystem(::windows::core::IUnknown);
1329impl SpatialCoordinateSystem {
1330 #[doc = "*Required features: `\"Foundation_Numerics\"`*"]
1331 #[cfg(feature = "Foundation_Numerics")]
1332 pub fn TryGetTransformTo(&self, target: &SpatialCoordinateSystem) -> ::windows::core::Result<super::super::Foundation::IReference<super::super::Foundation::Numerics::Matrix4x4>> {
1333 let this = self;
1334 unsafe {
1335 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::IReference<super::super::Foundation::Numerics::Matrix4x4>>();
1336 (::windows::core::Interface::vtable(this).TryGetTransformTo)(::windows::core::Interface::as_raw(this), ::core::mem::transmute_copy(target), &mut result__).from_abi(result__)
1337 }
1338 }
1339}
1340impl ::core::cmp::PartialEq for SpatialCoordinateSystem {
1341 fn eq(&self, other: &Self) -> bool {
1342 self.0 == other.0
1343 }
1344}
1345impl ::core::cmp::Eq for SpatialCoordinateSystem {}
1346impl ::core::fmt::Debug for SpatialCoordinateSystem {
1347 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1348 f.debug_tuple("SpatialCoordinateSystem").field(&self.0).finish()
1349 }
1350}
1351impl ::windows::core::RuntimeType for SpatialCoordinateSystem {
1352 const SIGNATURE: ::windows::imp::ConstBuffer = ::windows::imp::ConstBuffer::from_slice(b"rc(Windows.Perception.Spatial.SpatialCoordinateSystem;{69ebca4b-60a3-3586-a653-59a7bd676d07})");
1353}
1354impl ::core::clone::Clone for SpatialCoordinateSystem {
1355 fn clone(&self) -> Self {
1356 Self(self.0.clone())
1357 }
1358}
1359unsafe impl ::windows::core::Interface for SpatialCoordinateSystem {
1360 type Vtable = ISpatialCoordinateSystem_Vtbl;
1361}
1362unsafe impl ::windows::core::ComInterface for SpatialCoordinateSystem {
1363 const IID: ::windows::core::GUID = <ISpatialCoordinateSystem as ::windows::core::ComInterface>::IID;
1364}
1365impl ::windows::core::RuntimeName for SpatialCoordinateSystem {
1366 const NAME: &'static str = "Windows.Perception.Spatial.SpatialCoordinateSystem";
1367}
1368::windows::imp::interface_hierarchy!(SpatialCoordinateSystem, ::windows::core::IUnknown, ::windows::core::IInspectable);
1369unsafe impl ::core::marker::Send for SpatialCoordinateSystem {}
1370unsafe impl ::core::marker::Sync for SpatialCoordinateSystem {}
1371#[doc = "*Required features: `\"Perception_Spatial\"`*"]
1372#[repr(transparent)]
1373pub struct SpatialEntity(::windows::core::IUnknown);
1374impl SpatialEntity {
1375 pub fn Id(&self) -> ::windows::core::Result<::windows::core::HSTRING> {
1376 let this = self;
1377 unsafe {
1378 let mut result__ = ::windows::core::zeroed::<::windows::core::HSTRING>();
1379 (::windows::core::Interface::vtable(this).Id)(::windows::core::Interface::as_raw(this), &mut result__).from_abi(result__)
1380 }
1381 }
1382 pub fn Anchor(&self) -> ::windows::core::Result<SpatialAnchor> {
1383 let this = self;
1384 unsafe {
1385 let mut result__ = ::windows::core::zeroed::<SpatialAnchor>();
1386 (::windows::core::Interface::vtable(this).Anchor)(::windows::core::Interface::as_raw(this), &mut result__).from_abi(result__)
1387 }
1388 }
1389 #[doc = "*Required features: `\"Foundation_Collections\"`*"]
1390 #[cfg(feature = "Foundation_Collections")]
1391 pub fn Properties(&self) -> ::windows::core::Result<super::super::Foundation::Collections::ValueSet> {
1392 let this = self;
1393 unsafe {
1394 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::Collections::ValueSet>();
1395 (::windows::core::Interface::vtable(this).Properties)(::windows::core::Interface::as_raw(this), &mut result__).from_abi(result__)
1396 }
1397 }
1398 pub fn CreateWithSpatialAnchor(spatialanchor: &SpatialAnchor) -> ::windows::core::Result<SpatialEntity> {
1399 Self::ISpatialEntityFactory(|this| unsafe {
1400 let mut result__ = ::windows::core::zeroed::<SpatialEntity>();
1401 (::windows::core::Interface::vtable(this).CreateWithSpatialAnchor)(::windows::core::Interface::as_raw(this), ::core::mem::transmute_copy(spatialanchor), &mut result__).from_abi(result__)
1402 })
1403 }
1404 #[doc = "*Required features: `\"Foundation_Collections\"`*"]
1405 #[cfg(feature = "Foundation_Collections")]
1406 pub fn CreateWithSpatialAnchorAndProperties(spatialanchor: &SpatialAnchor, propertyset: &super::super::Foundation::Collections::ValueSet) -> ::windows::core::Result<SpatialEntity> {
1407 Self::ISpatialEntityFactory(|this| unsafe {
1408 let mut result__ = ::windows::core::zeroed::<SpatialEntity>();
1409 (::windows::core::Interface::vtable(this).CreateWithSpatialAnchorAndProperties)(::windows::core::Interface::as_raw(this), ::core::mem::transmute_copy(spatialanchor), ::core::mem::transmute_copy(propertyset), &mut result__).from_abi(result__)
1410 })
1411 }
1412 #[doc(hidden)]
1413 pub fn ISpatialEntityFactory<R, F: FnOnce(&ISpatialEntityFactory) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
1414 static SHARED: ::windows::imp::FactoryCache<SpatialEntity, ISpatialEntityFactory> = ::windows::imp::FactoryCache::new();
1415 SHARED.call(callback)
1416 }
1417}
1418impl ::core::cmp::PartialEq for SpatialEntity {
1419 fn eq(&self, other: &Self) -> bool {
1420 self.0 == other.0
1421 }
1422}
1423impl ::core::cmp::Eq for SpatialEntity {}
1424impl ::core::fmt::Debug for SpatialEntity {
1425 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1426 f.debug_tuple("SpatialEntity").field(&self.0).finish()
1427 }
1428}
1429impl ::windows::core::RuntimeType for SpatialEntity {
1430 const SIGNATURE: ::windows::imp::ConstBuffer = ::windows::imp::ConstBuffer::from_slice(b"rc(Windows.Perception.Spatial.SpatialEntity;{166de955-e1eb-454c-ba08-e6c0668ddc65})");
1431}
1432impl ::core::clone::Clone for SpatialEntity {
1433 fn clone(&self) -> Self {
1434 Self(self.0.clone())
1435 }
1436}
1437unsafe impl ::windows::core::Interface for SpatialEntity {
1438 type Vtable = ISpatialEntity_Vtbl;
1439}
1440unsafe impl ::windows::core::ComInterface for SpatialEntity {
1441 const IID: ::windows::core::GUID = <ISpatialEntity as ::windows::core::ComInterface>::IID;
1442}
1443impl ::windows::core::RuntimeName for SpatialEntity {
1444 const NAME: &'static str = "Windows.Perception.Spatial.SpatialEntity";
1445}
1446::windows::imp::interface_hierarchy!(SpatialEntity, ::windows::core::IUnknown, ::windows::core::IInspectable);
1447unsafe impl ::core::marker::Send for SpatialEntity {}
1448unsafe impl ::core::marker::Sync for SpatialEntity {}
1449#[doc = "*Required features: `\"Perception_Spatial\"`*"]
1450#[repr(transparent)]
1451pub struct SpatialEntityAddedEventArgs(::windows::core::IUnknown);
1452impl SpatialEntityAddedEventArgs {
1453 pub fn Entity(&self) -> ::windows::core::Result<SpatialEntity> {
1454 let this = self;
1455 unsafe {
1456 let mut result__ = ::windows::core::zeroed::<SpatialEntity>();
1457 (::windows::core::Interface::vtable(this).Entity)(::windows::core::Interface::as_raw(this), &mut result__).from_abi(result__)
1458 }
1459 }
1460}
1461impl ::core::cmp::PartialEq for SpatialEntityAddedEventArgs {
1462 fn eq(&self, other: &Self) -> bool {
1463 self.0 == other.0
1464 }
1465}
1466impl ::core::cmp::Eq for SpatialEntityAddedEventArgs {}
1467impl ::core::fmt::Debug for SpatialEntityAddedEventArgs {
1468 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1469 f.debug_tuple("SpatialEntityAddedEventArgs").field(&self.0).finish()
1470 }
1471}
1472impl ::windows::core::RuntimeType for SpatialEntityAddedEventArgs {
1473 const SIGNATURE: ::windows::imp::ConstBuffer = ::windows::imp::ConstBuffer::from_slice(b"rc(Windows.Perception.Spatial.SpatialEntityAddedEventArgs;{a397f49b-156a-4707-ac2c-d31d570ed399})");
1474}
1475impl ::core::clone::Clone for SpatialEntityAddedEventArgs {
1476 fn clone(&self) -> Self {
1477 Self(self.0.clone())
1478 }
1479}
1480unsafe impl ::windows::core::Interface for SpatialEntityAddedEventArgs {
1481 type Vtable = ISpatialEntityAddedEventArgs_Vtbl;
1482}
1483unsafe impl ::windows::core::ComInterface for SpatialEntityAddedEventArgs {
1484 const IID: ::windows::core::GUID = <ISpatialEntityAddedEventArgs as ::windows::core::ComInterface>::IID;
1485}
1486impl ::windows::core::RuntimeName for SpatialEntityAddedEventArgs {
1487 const NAME: &'static str = "Windows.Perception.Spatial.SpatialEntityAddedEventArgs";
1488}
1489::windows::imp::interface_hierarchy!(SpatialEntityAddedEventArgs, ::windows::core::IUnknown, ::windows::core::IInspectable);
1490unsafe impl ::core::marker::Send for SpatialEntityAddedEventArgs {}
1491unsafe impl ::core::marker::Sync for SpatialEntityAddedEventArgs {}
1492#[doc = "*Required features: `\"Perception_Spatial\"`*"]
1493#[repr(transparent)]
1494pub struct SpatialEntityRemovedEventArgs(::windows::core::IUnknown);
1495impl SpatialEntityRemovedEventArgs {
1496 pub fn Entity(&self) -> ::windows::core::Result<SpatialEntity> {
1497 let this = self;
1498 unsafe {
1499 let mut result__ = ::windows::core::zeroed::<SpatialEntity>();
1500 (::windows::core::Interface::vtable(this).Entity)(::windows::core::Interface::as_raw(this), &mut result__).from_abi(result__)
1501 }
1502 }
1503}
1504impl ::core::cmp::PartialEq for SpatialEntityRemovedEventArgs {
1505 fn eq(&self, other: &Self) -> bool {
1506 self.0 == other.0
1507 }
1508}
1509impl ::core::cmp::Eq for SpatialEntityRemovedEventArgs {}
1510impl ::core::fmt::Debug for SpatialEntityRemovedEventArgs {
1511 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1512 f.debug_tuple("SpatialEntityRemovedEventArgs").field(&self.0).finish()
1513 }
1514}
1515impl ::windows::core::RuntimeType for SpatialEntityRemovedEventArgs {
1516 const SIGNATURE: ::windows::imp::ConstBuffer = ::windows::imp::ConstBuffer::from_slice(b"rc(Windows.Perception.Spatial.SpatialEntityRemovedEventArgs;{91741800-536d-4e9f-abf6-415b5444d651})");
1517}
1518impl ::core::clone::Clone for SpatialEntityRemovedEventArgs {
1519 fn clone(&self) -> Self {
1520 Self(self.0.clone())
1521 }
1522}
1523unsafe impl ::windows::core::Interface for SpatialEntityRemovedEventArgs {
1524 type Vtable = ISpatialEntityRemovedEventArgs_Vtbl;
1525}
1526unsafe impl ::windows::core::ComInterface for SpatialEntityRemovedEventArgs {
1527 const IID: ::windows::core::GUID = <ISpatialEntityRemovedEventArgs as ::windows::core::ComInterface>::IID;
1528}
1529impl ::windows::core::RuntimeName for SpatialEntityRemovedEventArgs {
1530 const NAME: &'static str = "Windows.Perception.Spatial.SpatialEntityRemovedEventArgs";
1531}
1532::windows::imp::interface_hierarchy!(SpatialEntityRemovedEventArgs, ::windows::core::IUnknown, ::windows::core::IInspectable);
1533unsafe impl ::core::marker::Send for SpatialEntityRemovedEventArgs {}
1534unsafe impl ::core::marker::Sync for SpatialEntityRemovedEventArgs {}
1535#[doc = "*Required features: `\"Perception_Spatial\"`*"]
1536#[repr(transparent)]
1537pub struct SpatialEntityStore(::windows::core::IUnknown);
1538impl SpatialEntityStore {
1539 #[doc = "*Required features: `\"Foundation\"`*"]
1540 #[cfg(feature = "Foundation")]
1541 pub fn SaveAsync(&self, entity: &SpatialEntity) -> ::windows::core::Result<super::super::Foundation::IAsyncAction> {
1542 let this = self;
1543 unsafe {
1544 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::IAsyncAction>();
1545 (::windows::core::Interface::vtable(this).SaveAsync)(::windows::core::Interface::as_raw(this), ::core::mem::transmute_copy(entity), &mut result__).from_abi(result__)
1546 }
1547 }
1548 #[doc = "*Required features: `\"Foundation\"`*"]
1549 #[cfg(feature = "Foundation")]
1550 pub fn RemoveAsync(&self, entity: &SpatialEntity) -> ::windows::core::Result<super::super::Foundation::IAsyncAction> {
1551 let this = self;
1552 unsafe {
1553 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::IAsyncAction>();
1554 (::windows::core::Interface::vtable(this).RemoveAsync)(::windows::core::Interface::as_raw(this), ::core::mem::transmute_copy(entity), &mut result__).from_abi(result__)
1555 }
1556 }
1557 pub fn CreateEntityWatcher(&self) -> ::windows::core::Result<SpatialEntityWatcher> {
1558 let this = self;
1559 unsafe {
1560 let mut result__ = ::windows::core::zeroed::<SpatialEntityWatcher>();
1561 (::windows::core::Interface::vtable(this).CreateEntityWatcher)(::windows::core::Interface::as_raw(this), &mut result__).from_abi(result__)
1562 }
1563 }
1564 pub fn IsSupported() -> ::windows::core::Result<bool> {
1565 Self::ISpatialEntityStoreStatics(|this| unsafe {
1566 let mut result__ = ::windows::core::zeroed::<bool>();
1567 (::windows::core::Interface::vtable(this).IsSupported)(::windows::core::Interface::as_raw(this), &mut result__).from_abi(result__)
1568 })
1569 }
1570 #[doc = "*Required features: `\"System_RemoteSystems\"`*"]
1571 #[cfg(feature = "System_RemoteSystems")]
1572 pub fn TryGetForRemoteSystemSession(session: &super::super::System::RemoteSystems::RemoteSystemSession) -> ::windows::core::Result<SpatialEntityStore> {
1573 Self::ISpatialEntityStoreStatics(|this| unsafe {
1574 let mut result__ = ::windows::core::zeroed::<SpatialEntityStore>();
1575 (::windows::core::Interface::vtable(this).TryGetForRemoteSystemSession)(::windows::core::Interface::as_raw(this), ::core::mem::transmute_copy(session), &mut result__).from_abi(result__)
1576 })
1577 }
1578 #[doc(hidden)]
1579 pub fn ISpatialEntityStoreStatics<R, F: FnOnce(&ISpatialEntityStoreStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
1580 static SHARED: ::windows::imp::FactoryCache<SpatialEntityStore, ISpatialEntityStoreStatics> = ::windows::imp::FactoryCache::new();
1581 SHARED.call(callback)
1582 }
1583}
1584impl ::core::cmp::PartialEq for SpatialEntityStore {
1585 fn eq(&self, other: &Self) -> bool {
1586 self.0 == other.0
1587 }
1588}
1589impl ::core::cmp::Eq for SpatialEntityStore {}
1590impl ::core::fmt::Debug for SpatialEntityStore {
1591 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1592 f.debug_tuple("SpatialEntityStore").field(&self.0).finish()
1593 }
1594}
1595impl ::windows::core::RuntimeType for SpatialEntityStore {
1596 const SIGNATURE: ::windows::imp::ConstBuffer = ::windows::imp::ConstBuffer::from_slice(b"rc(Windows.Perception.Spatial.SpatialEntityStore;{329788ba-e513-4f06-889d-1be30ecf43e6})");
1597}
1598impl ::core::clone::Clone for SpatialEntityStore {
1599 fn clone(&self) -> Self {
1600 Self(self.0.clone())
1601 }
1602}
1603unsafe impl ::windows::core::Interface for SpatialEntityStore {
1604 type Vtable = ISpatialEntityStore_Vtbl;
1605}
1606unsafe impl ::windows::core::ComInterface for SpatialEntityStore {
1607 const IID: ::windows::core::GUID = <ISpatialEntityStore as ::windows::core::ComInterface>::IID;
1608}
1609impl ::windows::core::RuntimeName for SpatialEntityStore {
1610 const NAME: &'static str = "Windows.Perception.Spatial.SpatialEntityStore";
1611}
1612::windows::imp::interface_hierarchy!(SpatialEntityStore, ::windows::core::IUnknown, ::windows::core::IInspectable);
1613unsafe impl ::core::marker::Send for SpatialEntityStore {}
1614unsafe impl ::core::marker::Sync for SpatialEntityStore {}
1615#[doc = "*Required features: `\"Perception_Spatial\"`*"]
1616#[repr(transparent)]
1617pub struct SpatialEntityUpdatedEventArgs(::windows::core::IUnknown);
1618impl SpatialEntityUpdatedEventArgs {
1619 pub fn Entity(&self) -> ::windows::core::Result<SpatialEntity> {
1620 let this = self;
1621 unsafe {
1622 let mut result__ = ::windows::core::zeroed::<SpatialEntity>();
1623 (::windows::core::Interface::vtable(this).Entity)(::windows::core::Interface::as_raw(this), &mut result__).from_abi(result__)
1624 }
1625 }
1626}
1627impl ::core::cmp::PartialEq for SpatialEntityUpdatedEventArgs {
1628 fn eq(&self, other: &Self) -> bool {
1629 self.0 == other.0
1630 }
1631}
1632impl ::core::cmp::Eq for SpatialEntityUpdatedEventArgs {}
1633impl ::core::fmt::Debug for SpatialEntityUpdatedEventArgs {
1634 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1635 f.debug_tuple("SpatialEntityUpdatedEventArgs").field(&self.0).finish()
1636 }
1637}
1638impl ::windows::core::RuntimeType for SpatialEntityUpdatedEventArgs {
1639 const SIGNATURE: ::windows::imp::ConstBuffer = ::windows::imp::ConstBuffer::from_slice(b"rc(Windows.Perception.Spatial.SpatialEntityUpdatedEventArgs;{e5671766-627b-43cb-a49f-b3be6d47deed})");
1640}
1641impl ::core::clone::Clone for SpatialEntityUpdatedEventArgs {
1642 fn clone(&self) -> Self {
1643 Self(self.0.clone())
1644 }
1645}
1646unsafe impl ::windows::core::Interface for SpatialEntityUpdatedEventArgs {
1647 type Vtable = ISpatialEntityUpdatedEventArgs_Vtbl;
1648}
1649unsafe impl ::windows::core::ComInterface for SpatialEntityUpdatedEventArgs {
1650 const IID: ::windows::core::GUID = <ISpatialEntityUpdatedEventArgs as ::windows::core::ComInterface>::IID;
1651}
1652impl ::windows::core::RuntimeName for SpatialEntityUpdatedEventArgs {
1653 const NAME: &'static str = "Windows.Perception.Spatial.SpatialEntityUpdatedEventArgs";
1654}
1655::windows::imp::interface_hierarchy!(SpatialEntityUpdatedEventArgs, ::windows::core::IUnknown, ::windows::core::IInspectable);
1656unsafe impl ::core::marker::Send for SpatialEntityUpdatedEventArgs {}
1657unsafe impl ::core::marker::Sync for SpatialEntityUpdatedEventArgs {}
1658#[doc = "*Required features: `\"Perception_Spatial\"`*"]
1659#[repr(transparent)]
1660pub struct SpatialEntityWatcher(::windows::core::IUnknown);
1661impl SpatialEntityWatcher {
1662 pub fn Status(&self) -> ::windows::core::Result<SpatialEntityWatcherStatus> {
1663 let this = self;
1664 unsafe {
1665 let mut result__ = ::windows::core::zeroed::<SpatialEntityWatcherStatus>();
1666 (::windows::core::Interface::vtable(this).Status)(::windows::core::Interface::as_raw(this), &mut result__).from_abi(result__)
1667 }
1668 }
1669 #[doc = "*Required features: `\"Foundation\"`*"]
1670 #[cfg(feature = "Foundation")]
1671 pub fn Added(&self, handler: &super::super::Foundation::TypedEventHandler<SpatialEntityWatcher, SpatialEntityAddedEventArgs>) -> ::windows::core::Result<super::super::Foundation::EventRegistrationToken> {
1672 let this = self;
1673 unsafe {
1674 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::EventRegistrationToken>();
1675 (::windows::core::Interface::vtable(this).Added)(::windows::core::Interface::as_raw(this), ::core::mem::transmute_copy(handler), &mut result__).from_abi(result__)
1676 }
1677 }
1678 #[doc = "*Required features: `\"Foundation\"`*"]
1679 #[cfg(feature = "Foundation")]
1680 pub fn RemoveAdded(&self, token: super::super::Foundation::EventRegistrationToken) -> ::windows::core::Result<()> {
1681 let this = self;
1682 unsafe { (::windows::core::Interface::vtable(this).RemoveAdded)(::windows::core::Interface::as_raw(this), token).ok() }
1683 }
1684 #[doc = "*Required features: `\"Foundation\"`*"]
1685 #[cfg(feature = "Foundation")]
1686 pub fn Updated(&self, handler: &super::super::Foundation::TypedEventHandler<SpatialEntityWatcher, SpatialEntityUpdatedEventArgs>) -> ::windows::core::Result<super::super::Foundation::EventRegistrationToken> {
1687 let this = self;
1688 unsafe {
1689 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::EventRegistrationToken>();
1690 (::windows::core::Interface::vtable(this).Updated)(::windows::core::Interface::as_raw(this), ::core::mem::transmute_copy(handler), &mut result__).from_abi(result__)
1691 }
1692 }
1693 #[doc = "*Required features: `\"Foundation\"`*"]
1694 #[cfg(feature = "Foundation")]
1695 pub fn RemoveUpdated(&self, token: super::super::Foundation::EventRegistrationToken) -> ::windows::core::Result<()> {
1696 let this = self;
1697 unsafe { (::windows::core::Interface::vtable(this).RemoveUpdated)(::windows::core::Interface::as_raw(this), token).ok() }
1698 }
1699 #[doc = "*Required features: `\"Foundation\"`*"]
1700 #[cfg(feature = "Foundation")]
1701 pub fn Removed(&self, handler: &super::super::Foundation::TypedEventHandler<SpatialEntityWatcher, SpatialEntityRemovedEventArgs>) -> ::windows::core::Result<super::super::Foundation::EventRegistrationToken> {
1702 let this = self;
1703 unsafe {
1704 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::EventRegistrationToken>();
1705 (::windows::core::Interface::vtable(this).Removed)(::windows::core::Interface::as_raw(this), ::core::mem::transmute_copy(handler), &mut result__).from_abi(result__)
1706 }
1707 }
1708 #[doc = "*Required features: `\"Foundation\"`*"]
1709 #[cfg(feature = "Foundation")]
1710 pub fn RemoveRemoved(&self, token: super::super::Foundation::EventRegistrationToken) -> ::windows::core::Result<()> {
1711 let this = self;
1712 unsafe { (::windows::core::Interface::vtable(this).RemoveRemoved)(::windows::core::Interface::as_raw(this), token).ok() }
1713 }
1714 #[doc = "*Required features: `\"Foundation\"`*"]
1715 #[cfg(feature = "Foundation")]
1716 pub fn EnumerationCompleted(&self, handler: &super::super::Foundation::TypedEventHandler<SpatialEntityWatcher, ::windows::core::IInspectable>) -> ::windows::core::Result<super::super::Foundation::EventRegistrationToken> {
1717 let this = self;
1718 unsafe {
1719 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::EventRegistrationToken>();
1720 (::windows::core::Interface::vtable(this).EnumerationCompleted)(::windows::core::Interface::as_raw(this), ::core::mem::transmute_copy(handler), &mut result__).from_abi(result__)
1721 }
1722 }
1723 #[doc = "*Required features: `\"Foundation\"`*"]
1724 #[cfg(feature = "Foundation")]
1725 pub fn RemoveEnumerationCompleted(&self, token: super::super::Foundation::EventRegistrationToken) -> ::windows::core::Result<()> {
1726 let this = self;
1727 unsafe { (::windows::core::Interface::vtable(this).RemoveEnumerationCompleted)(::windows::core::Interface::as_raw(this), token).ok() }
1728 }
1729 pub fn Start(&self) -> ::windows::core::Result<()> {
1730 let this = self;
1731 unsafe { (::windows::core::Interface::vtable(this).Start)(::windows::core::Interface::as_raw(this)).ok() }
1732 }
1733 pub fn Stop(&self) -> ::windows::core::Result<()> {
1734 let this = self;
1735 unsafe { (::windows::core::Interface::vtable(this).Stop)(::windows::core::Interface::as_raw(this)).ok() }
1736 }
1737}
1738impl ::core::cmp::PartialEq for SpatialEntityWatcher {
1739 fn eq(&self, other: &Self) -> bool {
1740 self.0 == other.0
1741 }
1742}
1743impl ::core::cmp::Eq for SpatialEntityWatcher {}
1744impl ::core::fmt::Debug for SpatialEntityWatcher {
1745 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1746 f.debug_tuple("SpatialEntityWatcher").field(&self.0).finish()
1747 }
1748}
1749impl ::windows::core::RuntimeType for SpatialEntityWatcher {
1750 const SIGNATURE: ::windows::imp::ConstBuffer = ::windows::imp::ConstBuffer::from_slice(b"rc(Windows.Perception.Spatial.SpatialEntityWatcher;{b3b85fa0-6d5e-4bbc-805d-5fe5b9ba1959})");
1751}
1752impl ::core::clone::Clone for SpatialEntityWatcher {
1753 fn clone(&self) -> Self {
1754 Self(self.0.clone())
1755 }
1756}
1757unsafe impl ::windows::core::Interface for SpatialEntityWatcher {
1758 type Vtable = ISpatialEntityWatcher_Vtbl;
1759}
1760unsafe impl ::windows::core::ComInterface for SpatialEntityWatcher {
1761 const IID: ::windows::core::GUID = <ISpatialEntityWatcher as ::windows::core::ComInterface>::IID;
1762}
1763impl ::windows::core::RuntimeName for SpatialEntityWatcher {
1764 const NAME: &'static str = "Windows.Perception.Spatial.SpatialEntityWatcher";
1765}
1766::windows::imp::interface_hierarchy!(SpatialEntityWatcher, ::windows::core::IUnknown, ::windows::core::IInspectable);
1767unsafe impl ::core::marker::Send for SpatialEntityWatcher {}
1768unsafe impl ::core::marker::Sync for SpatialEntityWatcher {}
1769#[doc = "*Required features: `\"Perception_Spatial\"`*"]
1770#[repr(transparent)]
1771pub struct SpatialLocation(::windows::core::IUnknown);
1772impl SpatialLocation {
1773 #[doc = "*Required features: `\"Foundation_Numerics\"`*"]
1774 #[cfg(feature = "Foundation_Numerics")]
1775 pub fn Position(&self) -> ::windows::core::Result<super::super::Foundation::Numerics::Vector3> {
1776 let this = self;
1777 unsafe {
1778 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::Numerics::Vector3>();
1779 (::windows::core::Interface::vtable(this).Position)(::windows::core::Interface::as_raw(this), &mut result__).from_abi(result__)
1780 }
1781 }
1782 #[doc = "*Required features: `\"Foundation_Numerics\"`*"]
1783 #[cfg(feature = "Foundation_Numerics")]
1784 pub fn Orientation(&self) -> ::windows::core::Result<super::super::Foundation::Numerics::Quaternion> {
1785 let this = self;
1786 unsafe {
1787 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::Numerics::Quaternion>();
1788 (::windows::core::Interface::vtable(this).Orientation)(::windows::core::Interface::as_raw(this), &mut result__).from_abi(result__)
1789 }
1790 }
1791 #[doc = "*Required features: `\"Foundation_Numerics\"`*"]
1792 #[cfg(feature = "Foundation_Numerics")]
1793 pub fn AbsoluteLinearVelocity(&self) -> ::windows::core::Result<super::super::Foundation::Numerics::Vector3> {
1794 let this = self;
1795 unsafe {
1796 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::Numerics::Vector3>();
1797 (::windows::core::Interface::vtable(this).AbsoluteLinearVelocity)(::windows::core::Interface::as_raw(this), &mut result__).from_abi(result__)
1798 }
1799 }
1800 #[doc = "*Required features: `\"Foundation_Numerics\"`*"]
1801 #[cfg(feature = "Foundation_Numerics")]
1802 pub fn AbsoluteLinearAcceleration(&self) -> ::windows::core::Result<super::super::Foundation::Numerics::Vector3> {
1803 let this = self;
1804 unsafe {
1805 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::Numerics::Vector3>();
1806 (::windows::core::Interface::vtable(this).AbsoluteLinearAcceleration)(::windows::core::Interface::as_raw(this), &mut result__).from_abi(result__)
1807 }
1808 }
1809 #[doc = "*Required features: `\"Foundation_Numerics\"`, `\"deprecated\"`*"]
1810 #[cfg(all(feature = "Foundation_Numerics", feature = "deprecated"))]
1811 pub fn AbsoluteAngularVelocity(&self) -> ::windows::core::Result<super::super::Foundation::Numerics::Quaternion> {
1812 let this = self;
1813 unsafe {
1814 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::Numerics::Quaternion>();
1815 (::windows::core::Interface::vtable(this).AbsoluteAngularVelocity)(::windows::core::Interface::as_raw(this), &mut result__).from_abi(result__)
1816 }
1817 }
1818 #[doc = "*Required features: `\"Foundation_Numerics\"`, `\"deprecated\"`*"]
1819 #[cfg(all(feature = "Foundation_Numerics", feature = "deprecated"))]
1820 pub fn AbsoluteAngularAcceleration(&self) -> ::windows::core::Result<super::super::Foundation::Numerics::Quaternion> {
1821 let this = self;
1822 unsafe {
1823 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::Numerics::Quaternion>();
1824 (::windows::core::Interface::vtable(this).AbsoluteAngularAcceleration)(::windows::core::Interface::as_raw(this), &mut result__).from_abi(result__)
1825 }
1826 }
1827 #[doc = "*Required features: `\"Foundation_Numerics\"`*"]
1828 #[cfg(feature = "Foundation_Numerics")]
1829 pub fn AbsoluteAngularVelocityAxisAngle(&self) -> ::windows::core::Result<super::super::Foundation::Numerics::Vector3> {
1830 let this = &::windows::core::ComInterface::cast::<ISpatialLocation2>(self)?;
1831 unsafe {
1832 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::Numerics::Vector3>();
1833 (::windows::core::Interface::vtable(this).AbsoluteAngularVelocityAxisAngle)(::windows::core::Interface::as_raw(this), &mut result__).from_abi(result__)
1834 }
1835 }
1836 #[doc = "*Required features: `\"Foundation_Numerics\"`*"]
1837 #[cfg(feature = "Foundation_Numerics")]
1838 pub fn AbsoluteAngularAccelerationAxisAngle(&self) -> ::windows::core::Result<super::super::Foundation::Numerics::Vector3> {
1839 let this = &::windows::core::ComInterface::cast::<ISpatialLocation2>(self)?;
1840 unsafe {
1841 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::Numerics::Vector3>();
1842 (::windows::core::Interface::vtable(this).AbsoluteAngularAccelerationAxisAngle)(::windows::core::Interface::as_raw(this), &mut result__).from_abi(result__)
1843 }
1844 }
1845}
1846impl ::core::cmp::PartialEq for SpatialLocation {
1847 fn eq(&self, other: &Self) -> bool {
1848 self.0 == other.0
1849 }
1850}
1851impl ::core::cmp::Eq for SpatialLocation {}
1852impl ::core::fmt::Debug for SpatialLocation {
1853 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1854 f.debug_tuple("SpatialLocation").field(&self.0).finish()
1855 }
1856}
1857impl ::windows::core::RuntimeType for SpatialLocation {
1858 const SIGNATURE: ::windows::imp::ConstBuffer = ::windows::imp::ConstBuffer::from_slice(b"rc(Windows.Perception.Spatial.SpatialLocation;{1d81d29d-24a1-37d5-8fa1-39b4f9ad67e2})");
1859}
1860impl ::core::clone::Clone for SpatialLocation {
1861 fn clone(&self) -> Self {
1862 Self(self.0.clone())
1863 }
1864}
1865unsafe impl ::windows::core::Interface for SpatialLocation {
1866 type Vtable = ISpatialLocation_Vtbl;
1867}
1868unsafe impl ::windows::core::ComInterface for SpatialLocation {
1869 const IID: ::windows::core::GUID = <ISpatialLocation as ::windows::core::ComInterface>::IID;
1870}
1871impl ::windows::core::RuntimeName for SpatialLocation {
1872 const NAME: &'static str = "Windows.Perception.Spatial.SpatialLocation";
1873}
1874::windows::imp::interface_hierarchy!(SpatialLocation, ::windows::core::IUnknown, ::windows::core::IInspectable);
1875unsafe impl ::core::marker::Send for SpatialLocation {}
1876unsafe impl ::core::marker::Sync for SpatialLocation {}
1877#[doc = "*Required features: `\"Perception_Spatial\"`*"]
1878#[repr(transparent)]
1879pub struct SpatialLocator(::windows::core::IUnknown);
1880impl SpatialLocator {
1881 pub fn Locatability(&self) -> ::windows::core::Result<SpatialLocatability> {
1882 let this = self;
1883 unsafe {
1884 let mut result__ = ::windows::core::zeroed::<SpatialLocatability>();
1885 (::windows::core::Interface::vtable(this).Locatability)(::windows::core::Interface::as_raw(this), &mut result__).from_abi(result__)
1886 }
1887 }
1888 #[doc = "*Required features: `\"Foundation\"`*"]
1889 #[cfg(feature = "Foundation")]
1890 pub fn LocatabilityChanged(&self, handler: &super::super::Foundation::TypedEventHandler<SpatialLocator, ::windows::core::IInspectable>) -> ::windows::core::Result<super::super::Foundation::EventRegistrationToken> {
1891 let this = self;
1892 unsafe {
1893 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::EventRegistrationToken>();
1894 (::windows::core::Interface::vtable(this).LocatabilityChanged)(::windows::core::Interface::as_raw(this), ::core::mem::transmute_copy(handler), &mut result__).from_abi(result__)
1895 }
1896 }
1897 #[doc = "*Required features: `\"Foundation\"`*"]
1898 #[cfg(feature = "Foundation")]
1899 pub fn RemoveLocatabilityChanged(&self, cookie: super::super::Foundation::EventRegistrationToken) -> ::windows::core::Result<()> {
1900 let this = self;
1901 unsafe { (::windows::core::Interface::vtable(this).RemoveLocatabilityChanged)(::windows::core::Interface::as_raw(this), cookie).ok() }
1902 }
1903 #[doc = "*Required features: `\"Foundation\"`*"]
1904 #[cfg(feature = "Foundation")]
1905 pub fn PositionalTrackingDeactivating(&self, handler: &super::super::Foundation::TypedEventHandler<SpatialLocator, SpatialLocatorPositionalTrackingDeactivatingEventArgs>) -> ::windows::core::Result<super::super::Foundation::EventRegistrationToken> {
1906 let this = self;
1907 unsafe {
1908 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::EventRegistrationToken>();
1909 (::windows::core::Interface::vtable(this).PositionalTrackingDeactivating)(::windows::core::Interface::as_raw(this), ::core::mem::transmute_copy(handler), &mut result__).from_abi(result__)
1910 }
1911 }
1912 #[doc = "*Required features: `\"Foundation\"`*"]
1913 #[cfg(feature = "Foundation")]
1914 pub fn RemovePositionalTrackingDeactivating(&self, cookie: super::super::Foundation::EventRegistrationToken) -> ::windows::core::Result<()> {
1915 let this = self;
1916 unsafe { (::windows::core::Interface::vtable(this).RemovePositionalTrackingDeactivating)(::windows::core::Interface::as_raw(this), cookie).ok() }
1917 }
1918 pub fn TryLocateAtTimestamp(&self, timestamp: &super::PerceptionTimestamp, coordinatesystem: &SpatialCoordinateSystem) -> ::windows::core::Result<SpatialLocation> {
1919 let this = self;
1920 unsafe {
1921 let mut result__ = ::windows::core::zeroed::<SpatialLocation>();
1922 (::windows::core::Interface::vtable(this).TryLocateAtTimestamp)(::windows::core::Interface::as_raw(this), ::core::mem::transmute_copy(timestamp), ::core::mem::transmute_copy(coordinatesystem), &mut result__).from_abi(result__)
1923 }
1924 }
1925 pub fn CreateAttachedFrameOfReferenceAtCurrentHeading(&self) -> ::windows::core::Result<SpatialLocatorAttachedFrameOfReference> {
1926 let this = self;
1927 unsafe {
1928 let mut result__ = ::windows::core::zeroed::<SpatialLocatorAttachedFrameOfReference>();
1929 (::windows::core::Interface::vtable(this).CreateAttachedFrameOfReferenceAtCurrentHeading)(::windows::core::Interface::as_raw(this), &mut result__).from_abi(result__)
1930 }
1931 }
1932 #[doc = "*Required features: `\"Foundation_Numerics\"`*"]
1933 #[cfg(feature = "Foundation_Numerics")]
1934 pub fn CreateAttachedFrameOfReferenceAtCurrentHeadingWithPosition(&self, relativeposition: super::super::Foundation::Numerics::Vector3) -> ::windows::core::Result<SpatialLocatorAttachedFrameOfReference> {
1935 let this = self;
1936 unsafe {
1937 let mut result__ = ::windows::core::zeroed::<SpatialLocatorAttachedFrameOfReference>();
1938 (::windows::core::Interface::vtable(this).CreateAttachedFrameOfReferenceAtCurrentHeadingWithPosition)(::windows::core::Interface::as_raw(this), relativeposition, &mut result__).from_abi(result__)
1939 }
1940 }
1941 #[doc = "*Required features: `\"Foundation_Numerics\"`*"]
1942 #[cfg(feature = "Foundation_Numerics")]
1943 pub fn CreateAttachedFrameOfReferenceAtCurrentHeadingWithPositionAndOrientation(&self, relativeposition: super::super::Foundation::Numerics::Vector3, relativeorientation: super::super::Foundation::Numerics::Quaternion) -> ::windows::core::Result<SpatialLocatorAttachedFrameOfReference> {
1944 let this = self;
1945 unsafe {
1946 let mut result__ = ::windows::core::zeroed::<SpatialLocatorAttachedFrameOfReference>();
1947 (::windows::core::Interface::vtable(this).CreateAttachedFrameOfReferenceAtCurrentHeadingWithPositionAndOrientation)(::windows::core::Interface::as_raw(this), relativeposition, relativeorientation, &mut result__).from_abi(result__)
1948 }
1949 }
1950 #[doc = "*Required features: `\"Foundation_Numerics\"`*"]
1951 #[cfg(feature = "Foundation_Numerics")]
1952 pub fn CreateAttachedFrameOfReferenceAtCurrentHeadingWithPositionAndOrientationAndRelativeHeading(&self, relativeposition: super::super::Foundation::Numerics::Vector3, relativeorientation: super::super::Foundation::Numerics::Quaternion, relativeheadinginradians: f64) -> ::windows::core::Result<SpatialLocatorAttachedFrameOfReference> {
1953 let this = self;
1954 unsafe {
1955 let mut result__ = ::windows::core::zeroed::<SpatialLocatorAttachedFrameOfReference>();
1956 (::windows::core::Interface::vtable(this).CreateAttachedFrameOfReferenceAtCurrentHeadingWithPositionAndOrientationAndRelativeHeading)(::windows::core::Interface::as_raw(this), relativeposition, relativeorientation, relativeheadinginradians, &mut result__).from_abi(result__)
1957 }
1958 }
1959 pub fn CreateStationaryFrameOfReferenceAtCurrentLocation(&self) -> ::windows::core::Result<SpatialStationaryFrameOfReference> {
1960 let this = self;
1961 unsafe {
1962 let mut result__ = ::windows::core::zeroed::<SpatialStationaryFrameOfReference>();
1963 (::windows::core::Interface::vtable(this).CreateStationaryFrameOfReferenceAtCurrentLocation)(::windows::core::Interface::as_raw(this), &mut result__).from_abi(result__)
1964 }
1965 }
1966 #[doc = "*Required features: `\"Foundation_Numerics\"`*"]
1967 #[cfg(feature = "Foundation_Numerics")]
1968 pub fn CreateStationaryFrameOfReferenceAtCurrentLocationWithPosition(&self, relativeposition: super::super::Foundation::Numerics::Vector3) -> ::windows::core::Result<SpatialStationaryFrameOfReference> {
1969 let this = self;
1970 unsafe {
1971 let mut result__ = ::windows::core::zeroed::<SpatialStationaryFrameOfReference>();
1972 (::windows::core::Interface::vtable(this).CreateStationaryFrameOfReferenceAtCurrentLocationWithPosition)(::windows::core::Interface::as_raw(this), relativeposition, &mut result__).from_abi(result__)
1973 }
1974 }
1975 #[doc = "*Required features: `\"Foundation_Numerics\"`*"]
1976 #[cfg(feature = "Foundation_Numerics")]
1977 pub fn CreateStationaryFrameOfReferenceAtCurrentLocationWithPositionAndOrientation(&self, relativeposition: super::super::Foundation::Numerics::Vector3, relativeorientation: super::super::Foundation::Numerics::Quaternion) -> ::windows::core::Result<SpatialStationaryFrameOfReference> {
1978 let this = self;
1979 unsafe {
1980 let mut result__ = ::windows::core::zeroed::<SpatialStationaryFrameOfReference>();
1981 (::windows::core::Interface::vtable(this).CreateStationaryFrameOfReferenceAtCurrentLocationWithPositionAndOrientation)(::windows::core::Interface::as_raw(this), relativeposition, relativeorientation, &mut result__).from_abi(result__)
1982 }
1983 }
1984 #[doc = "*Required features: `\"Foundation_Numerics\"`*"]
1985 #[cfg(feature = "Foundation_Numerics")]
1986 pub fn CreateStationaryFrameOfReferenceAtCurrentLocationWithPositionAndOrientationAndRelativeHeading(&self, relativeposition: super::super::Foundation::Numerics::Vector3, relativeorientation: super::super::Foundation::Numerics::Quaternion, relativeheadinginradians: f64) -> ::windows::core::Result<SpatialStationaryFrameOfReference> {
1987 let this = self;
1988 unsafe {
1989 let mut result__ = ::windows::core::zeroed::<SpatialStationaryFrameOfReference>();
1990 (::windows::core::Interface::vtable(this).CreateStationaryFrameOfReferenceAtCurrentLocationWithPositionAndOrientationAndRelativeHeading)(::windows::core::Interface::as_raw(this), relativeposition, relativeorientation, relativeheadinginradians, &mut result__).from_abi(result__)
1991 }
1992 }
1993 pub fn GetDefault() -> ::windows::core::Result<SpatialLocator> {
1994 Self::ISpatialLocatorStatics(|this| unsafe {
1995 let mut result__ = ::windows::core::zeroed::<SpatialLocator>();
1996 (::windows::core::Interface::vtable(this).GetDefault)(::windows::core::Interface::as_raw(this), &mut result__).from_abi(result__)
1997 })
1998 }
1999 #[doc(hidden)]
2000 pub fn ISpatialLocatorStatics<R, F: FnOnce(&ISpatialLocatorStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
2001 static SHARED: ::windows::imp::FactoryCache<SpatialLocator, ISpatialLocatorStatics> = ::windows::imp::FactoryCache::new();
2002 SHARED.call(callback)
2003 }
2004}
2005impl ::core::cmp::PartialEq for SpatialLocator {
2006 fn eq(&self, other: &Self) -> bool {
2007 self.0 == other.0
2008 }
2009}
2010impl ::core::cmp::Eq for SpatialLocator {}
2011impl ::core::fmt::Debug for SpatialLocator {
2012 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2013 f.debug_tuple("SpatialLocator").field(&self.0).finish()
2014 }
2015}
2016impl ::windows::core::RuntimeType for SpatialLocator {
2017 const SIGNATURE: ::windows::imp::ConstBuffer = ::windows::imp::ConstBuffer::from_slice(b"rc(Windows.Perception.Spatial.SpatialLocator;{f6478925-9e0c-3bb6-997e-b64ecca24cf4})");
2018}
2019impl ::core::clone::Clone for SpatialLocator {
2020 fn clone(&self) -> Self {
2021 Self(self.0.clone())
2022 }
2023}
2024unsafe impl ::windows::core::Interface for SpatialLocator {
2025 type Vtable = ISpatialLocator_Vtbl;
2026}
2027unsafe impl ::windows::core::ComInterface for SpatialLocator {
2028 const IID: ::windows::core::GUID = <ISpatialLocator as ::windows::core::ComInterface>::IID;
2029}
2030impl ::windows::core::RuntimeName for SpatialLocator {
2031 const NAME: &'static str = "Windows.Perception.Spatial.SpatialLocator";
2032}
2033::windows::imp::interface_hierarchy!(SpatialLocator, ::windows::core::IUnknown, ::windows::core::IInspectable);
2034unsafe impl ::core::marker::Send for SpatialLocator {}
2035unsafe impl ::core::marker::Sync for SpatialLocator {}
2036#[doc = "*Required features: `\"Perception_Spatial\"`*"]
2037#[repr(transparent)]
2038pub struct SpatialLocatorAttachedFrameOfReference(::windows::core::IUnknown);
2039impl SpatialLocatorAttachedFrameOfReference {
2040 #[doc = "*Required features: `\"Foundation_Numerics\"`*"]
2041 #[cfg(feature = "Foundation_Numerics")]
2042 pub fn RelativePosition(&self) -> ::windows::core::Result<super::super::Foundation::Numerics::Vector3> {
2043 let this = self;
2044 unsafe {
2045 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::Numerics::Vector3>();
2046 (::windows::core::Interface::vtable(this).RelativePosition)(::windows::core::Interface::as_raw(this), &mut result__).from_abi(result__)
2047 }
2048 }
2049 #[doc = "*Required features: `\"Foundation_Numerics\"`*"]
2050 #[cfg(feature = "Foundation_Numerics")]
2051 pub fn SetRelativePosition(&self, value: super::super::Foundation::Numerics::Vector3) -> ::windows::core::Result<()> {
2052 let this = self;
2053 unsafe { (::windows::core::Interface::vtable(this).SetRelativePosition)(::windows::core::Interface::as_raw(this), value).ok() }
2054 }
2055 #[doc = "*Required features: `\"Foundation_Numerics\"`*"]
2056 #[cfg(feature = "Foundation_Numerics")]
2057 pub fn RelativeOrientation(&self) -> ::windows::core::Result<super::super::Foundation::Numerics::Quaternion> {
2058 let this = self;
2059 unsafe {
2060 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::Numerics::Quaternion>();
2061 (::windows::core::Interface::vtable(this).RelativeOrientation)(::windows::core::Interface::as_raw(this), &mut result__).from_abi(result__)
2062 }
2063 }
2064 #[doc = "*Required features: `\"Foundation_Numerics\"`*"]
2065 #[cfg(feature = "Foundation_Numerics")]
2066 pub fn SetRelativeOrientation(&self, value: super::super::Foundation::Numerics::Quaternion) -> ::windows::core::Result<()> {
2067 let this = self;
2068 unsafe { (::windows::core::Interface::vtable(this).SetRelativeOrientation)(::windows::core::Interface::as_raw(this), value).ok() }
2069 }
2070 pub fn AdjustHeading(&self, headingoffsetinradians: f64) -> ::windows::core::Result<()> {
2071 let this = self;
2072 unsafe { (::windows::core::Interface::vtable(this).AdjustHeading)(::windows::core::Interface::as_raw(this), headingoffsetinradians).ok() }
2073 }
2074 pub fn GetStationaryCoordinateSystemAtTimestamp(&self, timestamp: &super::PerceptionTimestamp) -> ::windows::core::Result<SpatialCoordinateSystem> {
2075 let this = self;
2076 unsafe {
2077 let mut result__ = ::windows::core::zeroed::<SpatialCoordinateSystem>();
2078 (::windows::core::Interface::vtable(this).GetStationaryCoordinateSystemAtTimestamp)(::windows::core::Interface::as_raw(this), ::core::mem::transmute_copy(timestamp), &mut result__).from_abi(result__)
2079 }
2080 }
2081 #[doc = "*Required features: `\"Foundation\"`*"]
2082 #[cfg(feature = "Foundation")]
2083 pub fn TryGetRelativeHeadingAtTimestamp(&self, timestamp: &super::PerceptionTimestamp) -> ::windows::core::Result<super::super::Foundation::IReference<f64>> {
2084 let this = self;
2085 unsafe {
2086 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::IReference<f64>>();
2087 (::windows::core::Interface::vtable(this).TryGetRelativeHeadingAtTimestamp)(::windows::core::Interface::as_raw(this), ::core::mem::transmute_copy(timestamp), &mut result__).from_abi(result__)
2088 }
2089 }
2090}
2091impl ::core::cmp::PartialEq for SpatialLocatorAttachedFrameOfReference {
2092 fn eq(&self, other: &Self) -> bool {
2093 self.0 == other.0
2094 }
2095}
2096impl ::core::cmp::Eq for SpatialLocatorAttachedFrameOfReference {}
2097impl ::core::fmt::Debug for SpatialLocatorAttachedFrameOfReference {
2098 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2099 f.debug_tuple("SpatialLocatorAttachedFrameOfReference").field(&self.0).finish()
2100 }
2101}
2102impl ::windows::core::RuntimeType for SpatialLocatorAttachedFrameOfReference {
2103 const SIGNATURE: ::windows::imp::ConstBuffer = ::windows::imp::ConstBuffer::from_slice(b"rc(Windows.Perception.Spatial.SpatialLocatorAttachedFrameOfReference;{e1774ef6-1f4f-499c-9625-ef5e6ed7a048})");
2104}
2105impl ::core::clone::Clone for SpatialLocatorAttachedFrameOfReference {
2106 fn clone(&self) -> Self {
2107 Self(self.0.clone())
2108 }
2109}
2110unsafe impl ::windows::core::Interface for SpatialLocatorAttachedFrameOfReference {
2111 type Vtable = ISpatialLocatorAttachedFrameOfReference_Vtbl;
2112}
2113unsafe impl ::windows::core::ComInterface for SpatialLocatorAttachedFrameOfReference {
2114 const IID: ::windows::core::GUID = <ISpatialLocatorAttachedFrameOfReference as ::windows::core::ComInterface>::IID;
2115}
2116impl ::windows::core::RuntimeName for SpatialLocatorAttachedFrameOfReference {
2117 const NAME: &'static str = "Windows.Perception.Spatial.SpatialLocatorAttachedFrameOfReference";
2118}
2119::windows::imp::interface_hierarchy!(SpatialLocatorAttachedFrameOfReference, ::windows::core::IUnknown, ::windows::core::IInspectable);
2120unsafe impl ::core::marker::Send for SpatialLocatorAttachedFrameOfReference {}
2121unsafe impl ::core::marker::Sync for SpatialLocatorAttachedFrameOfReference {}
2122#[doc = "*Required features: `\"Perception_Spatial\"`*"]
2123#[repr(transparent)]
2124pub struct SpatialLocatorPositionalTrackingDeactivatingEventArgs(::windows::core::IUnknown);
2125impl SpatialLocatorPositionalTrackingDeactivatingEventArgs {
2126 pub fn Canceled(&self) -> ::windows::core::Result<bool> {
2127 let this = self;
2128 unsafe {
2129 let mut result__ = ::windows::core::zeroed::<bool>();
2130 (::windows::core::Interface::vtable(this).Canceled)(::windows::core::Interface::as_raw(this), &mut result__).from_abi(result__)
2131 }
2132 }
2133 pub fn SetCanceled(&self, value: bool) -> ::windows::core::Result<()> {
2134 let this = self;
2135 unsafe { (::windows::core::Interface::vtable(this).SetCanceled)(::windows::core::Interface::as_raw(this), value).ok() }
2136 }
2137}
2138impl ::core::cmp::PartialEq for SpatialLocatorPositionalTrackingDeactivatingEventArgs {
2139 fn eq(&self, other: &Self) -> bool {
2140 self.0 == other.0
2141 }
2142}
2143impl ::core::cmp::Eq for SpatialLocatorPositionalTrackingDeactivatingEventArgs {}
2144impl ::core::fmt::Debug for SpatialLocatorPositionalTrackingDeactivatingEventArgs {
2145 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2146 f.debug_tuple("SpatialLocatorPositionalTrackingDeactivatingEventArgs").field(&self.0).finish()
2147 }
2148}
2149impl ::windows::core::RuntimeType for SpatialLocatorPositionalTrackingDeactivatingEventArgs {
2150 const SIGNATURE: ::windows::imp::ConstBuffer = ::windows::imp::ConstBuffer::from_slice(b"rc(Windows.Perception.Spatial.SpatialLocatorPositionalTrackingDeactivatingEventArgs;{b8a84063-e3f4-368b-9061-9ea9d1d6cc16})");
2151}
2152impl ::core::clone::Clone for SpatialLocatorPositionalTrackingDeactivatingEventArgs {
2153 fn clone(&self) -> Self {
2154 Self(self.0.clone())
2155 }
2156}
2157unsafe impl ::windows::core::Interface for SpatialLocatorPositionalTrackingDeactivatingEventArgs {
2158 type Vtable = ISpatialLocatorPositionalTrackingDeactivatingEventArgs_Vtbl;
2159}
2160unsafe impl ::windows::core::ComInterface for SpatialLocatorPositionalTrackingDeactivatingEventArgs {
2161 const IID: ::windows::core::GUID = <ISpatialLocatorPositionalTrackingDeactivatingEventArgs as ::windows::core::ComInterface>::IID;
2162}
2163impl ::windows::core::RuntimeName for SpatialLocatorPositionalTrackingDeactivatingEventArgs {
2164 const NAME: &'static str = "Windows.Perception.Spatial.SpatialLocatorPositionalTrackingDeactivatingEventArgs";
2165}
2166::windows::imp::interface_hierarchy!(SpatialLocatorPositionalTrackingDeactivatingEventArgs, ::windows::core::IUnknown, ::windows::core::IInspectable);
2167unsafe impl ::core::marker::Send for SpatialLocatorPositionalTrackingDeactivatingEventArgs {}
2168unsafe impl ::core::marker::Sync for SpatialLocatorPositionalTrackingDeactivatingEventArgs {}
2169#[doc = "*Required features: `\"Perception_Spatial\"`*"]
2170#[repr(transparent)]
2171pub struct SpatialStageFrameOfReference(::windows::core::IUnknown);
2172impl SpatialStageFrameOfReference {
2173 pub fn CoordinateSystem(&self) -> ::windows::core::Result<SpatialCoordinateSystem> {
2174 let this = self;
2175 unsafe {
2176 let mut result__ = ::windows::core::zeroed::<SpatialCoordinateSystem>();
2177 (::windows::core::Interface::vtable(this).CoordinateSystem)(::windows::core::Interface::as_raw(this), &mut result__).from_abi(result__)
2178 }
2179 }
2180 pub fn MovementRange(&self) -> ::windows::core::Result<SpatialMovementRange> {
2181 let this = self;
2182 unsafe {
2183 let mut result__ = ::windows::core::zeroed::<SpatialMovementRange>();
2184 (::windows::core::Interface::vtable(this).MovementRange)(::windows::core::Interface::as_raw(this), &mut result__).from_abi(result__)
2185 }
2186 }
2187 pub fn LookDirectionRange(&self) -> ::windows::core::Result<SpatialLookDirectionRange> {
2188 let this = self;
2189 unsafe {
2190 let mut result__ = ::windows::core::zeroed::<SpatialLookDirectionRange>();
2191 (::windows::core::Interface::vtable(this).LookDirectionRange)(::windows::core::Interface::as_raw(this), &mut result__).from_abi(result__)
2192 }
2193 }
2194 pub fn GetCoordinateSystemAtCurrentLocation(&self, locator: &SpatialLocator) -> ::windows::core::Result<SpatialCoordinateSystem> {
2195 let this = self;
2196 unsafe {
2197 let mut result__ = ::windows::core::zeroed::<SpatialCoordinateSystem>();
2198 (::windows::core::Interface::vtable(this).GetCoordinateSystemAtCurrentLocation)(::windows::core::Interface::as_raw(this), ::core::mem::transmute_copy(locator), &mut result__).from_abi(result__)
2199 }
2200 }
2201 #[doc = "*Required features: `\"Foundation_Numerics\"`*"]
2202 #[cfg(feature = "Foundation_Numerics")]
2203 pub fn TryGetMovementBounds(&self, coordinatesystem: &SpatialCoordinateSystem) -> ::windows::core::Result<::windows::core::Array<super::super::Foundation::Numerics::Vector3>> {
2204 let this = self;
2205 unsafe {
2206 let mut result__ = ::core::mem::MaybeUninit::zeroed();
2207 (::windows::core::Interface::vtable(this).TryGetMovementBounds)(::windows::core::Interface::as_raw(this), ::core::mem::transmute_copy(coordinatesystem), ::windows::core::Array::<super::super::Foundation::Numerics::Vector3>::set_abi_len(::std::mem::transmute(&mut result__)), result__.as_mut_ptr() as *mut _ as _).and_then(|| result__.assume_init())
2208 }
2209 }
2210 pub fn Current() -> ::windows::core::Result<SpatialStageFrameOfReference> {
2211 Self::ISpatialStageFrameOfReferenceStatics(|this| unsafe {
2212 let mut result__ = ::windows::core::zeroed::<SpatialStageFrameOfReference>();
2213 (::windows::core::Interface::vtable(this).Current)(::windows::core::Interface::as_raw(this), &mut result__).from_abi(result__)
2214 })
2215 }
2216 #[doc = "*Required features: `\"Foundation\"`*"]
2217 #[cfg(feature = "Foundation")]
2218 pub fn CurrentChanged(handler: &super::super::Foundation::EventHandler<::windows::core::IInspectable>) -> ::windows::core::Result<super::super::Foundation::EventRegistrationToken> {
2219 Self::ISpatialStageFrameOfReferenceStatics(|this| unsafe {
2220 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::EventRegistrationToken>();
2221 (::windows::core::Interface::vtable(this).CurrentChanged)(::windows::core::Interface::as_raw(this), ::core::mem::transmute_copy(handler), &mut result__).from_abi(result__)
2222 })
2223 }
2224 #[doc = "*Required features: `\"Foundation\"`*"]
2225 #[cfg(feature = "Foundation")]
2226 pub fn RemoveCurrentChanged(cookie: super::super::Foundation::EventRegistrationToken) -> ::windows::core::Result<()> {
2227 Self::ISpatialStageFrameOfReferenceStatics(|this| unsafe { (::windows::core::Interface::vtable(this).RemoveCurrentChanged)(::windows::core::Interface::as_raw(this), cookie).ok() })
2228 }
2229 #[doc = "*Required features: `\"Foundation\"`*"]
2230 #[cfg(feature = "Foundation")]
2231 pub fn RequestNewStageAsync() -> ::windows::core::Result<super::super::Foundation::IAsyncOperation<SpatialStageFrameOfReference>> {
2232 Self::ISpatialStageFrameOfReferenceStatics(|this| unsafe {
2233 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::IAsyncOperation<SpatialStageFrameOfReference>>();
2234 (::windows::core::Interface::vtable(this).RequestNewStageAsync)(::windows::core::Interface::as_raw(this), &mut result__).from_abi(result__)
2235 })
2236 }
2237 #[doc(hidden)]
2238 pub fn ISpatialStageFrameOfReferenceStatics<R, F: FnOnce(&ISpatialStageFrameOfReferenceStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
2239 static SHARED: ::windows::imp::FactoryCache<SpatialStageFrameOfReference, ISpatialStageFrameOfReferenceStatics> = ::windows::imp::FactoryCache::new();
2240 SHARED.call(callback)
2241 }
2242}
2243impl ::core::cmp::PartialEq for SpatialStageFrameOfReference {
2244 fn eq(&self, other: &Self) -> bool {
2245 self.0 == other.0
2246 }
2247}
2248impl ::core::cmp::Eq for SpatialStageFrameOfReference {}
2249impl ::core::fmt::Debug for SpatialStageFrameOfReference {
2250 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2251 f.debug_tuple("SpatialStageFrameOfReference").field(&self.0).finish()
2252 }
2253}
2254impl ::windows::core::RuntimeType for SpatialStageFrameOfReference {
2255 const SIGNATURE: ::windows::imp::ConstBuffer = ::windows::imp::ConstBuffer::from_slice(b"rc(Windows.Perception.Spatial.SpatialStageFrameOfReference;{7a8a3464-ad0d-4590-ab86-33062b674926})");
2256}
2257impl ::core::clone::Clone for SpatialStageFrameOfReference {
2258 fn clone(&self) -> Self {
2259 Self(self.0.clone())
2260 }
2261}
2262unsafe impl ::windows::core::Interface for SpatialStageFrameOfReference {
2263 type Vtable = ISpatialStageFrameOfReference_Vtbl;
2264}
2265unsafe impl ::windows::core::ComInterface for SpatialStageFrameOfReference {
2266 const IID: ::windows::core::GUID = <ISpatialStageFrameOfReference as ::windows::core::ComInterface>::IID;
2267}
2268impl ::windows::core::RuntimeName for SpatialStageFrameOfReference {
2269 const NAME: &'static str = "Windows.Perception.Spatial.SpatialStageFrameOfReference";
2270}
2271::windows::imp::interface_hierarchy!(SpatialStageFrameOfReference, ::windows::core::IUnknown, ::windows::core::IInspectable);
2272unsafe impl ::core::marker::Send for SpatialStageFrameOfReference {}
2273unsafe impl ::core::marker::Sync for SpatialStageFrameOfReference {}
2274#[doc = "*Required features: `\"Perception_Spatial\"`*"]
2275#[repr(transparent)]
2276pub struct SpatialStationaryFrameOfReference(::windows::core::IUnknown);
2277impl SpatialStationaryFrameOfReference {
2278 pub fn CoordinateSystem(&self) -> ::windows::core::Result<SpatialCoordinateSystem> {
2279 let this = self;
2280 unsafe {
2281 let mut result__ = ::windows::core::zeroed::<SpatialCoordinateSystem>();
2282 (::windows::core::Interface::vtable(this).CoordinateSystem)(::windows::core::Interface::as_raw(this), &mut result__).from_abi(result__)
2283 }
2284 }
2285}
2286impl ::core::cmp::PartialEq for SpatialStationaryFrameOfReference {
2287 fn eq(&self, other: &Self) -> bool {
2288 self.0 == other.0
2289 }
2290}
2291impl ::core::cmp::Eq for SpatialStationaryFrameOfReference {}
2292impl ::core::fmt::Debug for SpatialStationaryFrameOfReference {
2293 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2294 f.debug_tuple("SpatialStationaryFrameOfReference").field(&self.0).finish()
2295 }
2296}
2297impl ::windows::core::RuntimeType for SpatialStationaryFrameOfReference {
2298 const SIGNATURE: ::windows::imp::ConstBuffer = ::windows::imp::ConstBuffer::from_slice(b"rc(Windows.Perception.Spatial.SpatialStationaryFrameOfReference;{09dbccb9-bcf8-3e7f-be7e-7edccbb178a8})");
2299}
2300impl ::core::clone::Clone for SpatialStationaryFrameOfReference {
2301 fn clone(&self) -> Self {
2302 Self(self.0.clone())
2303 }
2304}
2305unsafe impl ::windows::core::Interface for SpatialStationaryFrameOfReference {
2306 type Vtable = ISpatialStationaryFrameOfReference_Vtbl;
2307}
2308unsafe impl ::windows::core::ComInterface for SpatialStationaryFrameOfReference {
2309 const IID: ::windows::core::GUID = <ISpatialStationaryFrameOfReference as ::windows::core::ComInterface>::IID;
2310}
2311impl ::windows::core::RuntimeName for SpatialStationaryFrameOfReference {
2312 const NAME: &'static str = "Windows.Perception.Spatial.SpatialStationaryFrameOfReference";
2313}
2314::windows::imp::interface_hierarchy!(SpatialStationaryFrameOfReference, ::windows::core::IUnknown, ::windows::core::IInspectable);
2315unsafe impl ::core::marker::Send for SpatialStationaryFrameOfReference {}
2316unsafe impl ::core::marker::Sync for SpatialStationaryFrameOfReference {}
2317#[doc = "*Required features: `\"Perception_Spatial\"`*"]
2318#[repr(transparent)]
2319#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
2320pub struct SpatialAnchorExportPurpose(pub i32);
2321impl SpatialAnchorExportPurpose {
2322 pub const Relocalization: Self = Self(0i32);
2323 pub const Sharing: Self = Self(1i32);
2324}
2325impl ::core::marker::Copy for SpatialAnchorExportPurpose {}
2326impl ::core::clone::Clone for SpatialAnchorExportPurpose {
2327 fn clone(&self) -> Self {
2328 *self
2329 }
2330}
2331impl ::core::default::Default for SpatialAnchorExportPurpose {
2332 fn default() -> Self {
2333 Self(0)
2334 }
2335}
2336impl ::windows::core::TypeKind for SpatialAnchorExportPurpose {
2337 type TypeKind = ::windows::core::CopyType;
2338}
2339impl ::core::fmt::Debug for SpatialAnchorExportPurpose {
2340 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2341 f.debug_tuple("SpatialAnchorExportPurpose").field(&self.0).finish()
2342 }
2343}
2344impl ::windows::core::RuntimeType for SpatialAnchorExportPurpose {
2345 const SIGNATURE: ::windows::imp::ConstBuffer = ::windows::imp::ConstBuffer::from_slice(b"enum(Windows.Perception.Spatial.SpatialAnchorExportPurpose;i4)");
2346}
2347#[doc = "*Required features: `\"Perception_Spatial\"`*"]
2348#[repr(transparent)]
2349#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
2350pub struct SpatialEntityWatcherStatus(pub i32);
2351impl SpatialEntityWatcherStatus {
2352 pub const Created: Self = Self(0i32);
2353 pub const Started: Self = Self(1i32);
2354 pub const EnumerationCompleted: Self = Self(2i32);
2355 pub const Stopping: Self = Self(3i32);
2356 pub const Stopped: Self = Self(4i32);
2357 pub const Aborted: Self = Self(5i32);
2358}
2359impl ::core::marker::Copy for SpatialEntityWatcherStatus {}
2360impl ::core::clone::Clone for SpatialEntityWatcherStatus {
2361 fn clone(&self) -> Self {
2362 *self
2363 }
2364}
2365impl ::core::default::Default for SpatialEntityWatcherStatus {
2366 fn default() -> Self {
2367 Self(0)
2368 }
2369}
2370impl ::windows::core::TypeKind for SpatialEntityWatcherStatus {
2371 type TypeKind = ::windows::core::CopyType;
2372}
2373impl ::core::fmt::Debug for SpatialEntityWatcherStatus {
2374 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2375 f.debug_tuple("SpatialEntityWatcherStatus").field(&self.0).finish()
2376 }
2377}
2378impl ::windows::core::RuntimeType for SpatialEntityWatcherStatus {
2379 const SIGNATURE: ::windows::imp::ConstBuffer = ::windows::imp::ConstBuffer::from_slice(b"enum(Windows.Perception.Spatial.SpatialEntityWatcherStatus;i4)");
2380}
2381#[doc = "*Required features: `\"Perception_Spatial\"`*"]
2382#[repr(transparent)]
2383#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
2384pub struct SpatialLocatability(pub i32);
2385impl SpatialLocatability {
2386 pub const Unavailable: Self = Self(0i32);
2387 pub const OrientationOnly: Self = Self(1i32);
2388 pub const PositionalTrackingActivating: Self = Self(2i32);
2389 pub const PositionalTrackingActive: Self = Self(3i32);
2390 pub const PositionalTrackingInhibited: Self = Self(4i32);
2391}
2392impl ::core::marker::Copy for SpatialLocatability {}
2393impl ::core::clone::Clone for SpatialLocatability {
2394 fn clone(&self) -> Self {
2395 *self
2396 }
2397}
2398impl ::core::default::Default for SpatialLocatability {
2399 fn default() -> Self {
2400 Self(0)
2401 }
2402}
2403impl ::windows::core::TypeKind for SpatialLocatability {
2404 type TypeKind = ::windows::core::CopyType;
2405}
2406impl ::core::fmt::Debug for SpatialLocatability {
2407 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2408 f.debug_tuple("SpatialLocatability").field(&self.0).finish()
2409 }
2410}
2411impl ::windows::core::RuntimeType for SpatialLocatability {
2412 const SIGNATURE: ::windows::imp::ConstBuffer = ::windows::imp::ConstBuffer::from_slice(b"enum(Windows.Perception.Spatial.SpatialLocatability;i4)");
2413}
2414#[doc = "*Required features: `\"Perception_Spatial\"`*"]
2415#[repr(transparent)]
2416#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
2417pub struct SpatialLookDirectionRange(pub i32);
2418impl SpatialLookDirectionRange {
2419 pub const ForwardOnly: Self = Self(0i32);
2420 pub const Omnidirectional: Self = Self(1i32);
2421}
2422impl ::core::marker::Copy for SpatialLookDirectionRange {}
2423impl ::core::clone::Clone for SpatialLookDirectionRange {
2424 fn clone(&self) -> Self {
2425 *self
2426 }
2427}
2428impl ::core::default::Default for SpatialLookDirectionRange {
2429 fn default() -> Self {
2430 Self(0)
2431 }
2432}
2433impl ::windows::core::TypeKind for SpatialLookDirectionRange {
2434 type TypeKind = ::windows::core::CopyType;
2435}
2436impl ::core::fmt::Debug for SpatialLookDirectionRange {
2437 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2438 f.debug_tuple("SpatialLookDirectionRange").field(&self.0).finish()
2439 }
2440}
2441impl ::windows::core::RuntimeType for SpatialLookDirectionRange {
2442 const SIGNATURE: ::windows::imp::ConstBuffer = ::windows::imp::ConstBuffer::from_slice(b"enum(Windows.Perception.Spatial.SpatialLookDirectionRange;i4)");
2443}
2444#[doc = "*Required features: `\"Perception_Spatial\"`*"]
2445#[repr(transparent)]
2446#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
2447pub struct SpatialMovementRange(pub i32);
2448impl SpatialMovementRange {
2449 pub const NoMovement: Self = Self(0i32);
2450 pub const Bounded: Self = Self(1i32);
2451}
2452impl ::core::marker::Copy for SpatialMovementRange {}
2453impl ::core::clone::Clone for SpatialMovementRange {
2454 fn clone(&self) -> Self {
2455 *self
2456 }
2457}
2458impl ::core::default::Default for SpatialMovementRange {
2459 fn default() -> Self {
2460 Self(0)
2461 }
2462}
2463impl ::windows::core::TypeKind for SpatialMovementRange {
2464 type TypeKind = ::windows::core::CopyType;
2465}
2466impl ::core::fmt::Debug for SpatialMovementRange {
2467 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2468 f.debug_tuple("SpatialMovementRange").field(&self.0).finish()
2469 }
2470}
2471impl ::windows::core::RuntimeType for SpatialMovementRange {
2472 const SIGNATURE: ::windows::imp::ConstBuffer = ::windows::imp::ConstBuffer::from_slice(b"enum(Windows.Perception.Spatial.SpatialMovementRange;i4)");
2473}
2474#[doc = "*Required features: `\"Perception_Spatial\"`*"]
2475#[repr(transparent)]
2476#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
2477pub struct SpatialPerceptionAccessStatus(pub i32);
2478impl SpatialPerceptionAccessStatus {
2479 pub const Unspecified: Self = Self(0i32);
2480 pub const Allowed: Self = Self(1i32);
2481 pub const DeniedByUser: Self = Self(2i32);
2482 pub const DeniedBySystem: Self = Self(3i32);
2483}
2484impl ::core::marker::Copy for SpatialPerceptionAccessStatus {}
2485impl ::core::clone::Clone for SpatialPerceptionAccessStatus {
2486 fn clone(&self) -> Self {
2487 *self
2488 }
2489}
2490impl ::core::default::Default for SpatialPerceptionAccessStatus {
2491 fn default() -> Self {
2492 Self(0)
2493 }
2494}
2495impl ::windows::core::TypeKind for SpatialPerceptionAccessStatus {
2496 type TypeKind = ::windows::core::CopyType;
2497}
2498impl ::core::fmt::Debug for SpatialPerceptionAccessStatus {
2499 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2500 f.debug_tuple("SpatialPerceptionAccessStatus").field(&self.0).finish()
2501 }
2502}
2503impl ::windows::core::RuntimeType for SpatialPerceptionAccessStatus {
2504 const SIGNATURE: ::windows::imp::ConstBuffer = ::windows::imp::ConstBuffer::from_slice(b"enum(Windows.Perception.Spatial.SpatialPerceptionAccessStatus;i4)");
2505}
2506#[repr(C)]
2507#[doc = "*Required features: `\"Perception_Spatial\"`, `\"Foundation_Numerics\"`*"]
2508#[cfg(feature = "Foundation_Numerics")]
2509pub struct SpatialBoundingBox {
2510 pub Center: super::super::Foundation::Numerics::Vector3,
2511 pub Extents: super::super::Foundation::Numerics::Vector3,
2512}
2513#[cfg(feature = "Foundation_Numerics")]
2514impl ::core::marker::Copy for SpatialBoundingBox {}
2515#[cfg(feature = "Foundation_Numerics")]
2516impl ::core::clone::Clone for SpatialBoundingBox {
2517 fn clone(&self) -> Self {
2518 *self
2519 }
2520}
2521#[cfg(feature = "Foundation_Numerics")]
2522impl ::core::fmt::Debug for SpatialBoundingBox {
2523 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2524 f.debug_struct("SpatialBoundingBox").field("Center", &self.Center).field("Extents", &self.Extents).finish()
2525 }
2526}
2527#[cfg(feature = "Foundation_Numerics")]
2528impl ::windows::core::TypeKind for SpatialBoundingBox {
2529 type TypeKind = ::windows::core::CopyType;
2530}
2531#[cfg(feature = "Foundation_Numerics")]
2532impl ::windows::core::RuntimeType for SpatialBoundingBox {
2533 const SIGNATURE: ::windows::imp::ConstBuffer = ::windows::imp::ConstBuffer::from_slice(b"struct(Windows.Perception.Spatial.SpatialBoundingBox;struct(Windows.Foundation.Numerics.Vector3;f4;f4;f4);struct(Windows.Foundation.Numerics.Vector3;f4;f4;f4))");
2534}
2535#[cfg(feature = "Foundation_Numerics")]
2536impl ::core::cmp::PartialEq for SpatialBoundingBox {
2537 fn eq(&self, other: &Self) -> bool {
2538 self.Center == other.Center && self.Extents == other.Extents
2539 }
2540}
2541#[cfg(feature = "Foundation_Numerics")]
2542impl ::core::cmp::Eq for SpatialBoundingBox {}
2543#[cfg(feature = "Foundation_Numerics")]
2544impl ::core::default::Default for SpatialBoundingBox {
2545 fn default() -> Self {
2546 unsafe { ::core::mem::zeroed() }
2547 }
2548}
2549#[repr(C)]
2550#[doc = "*Required features: `\"Perception_Spatial\"`, `\"Foundation_Numerics\"`*"]
2551#[cfg(feature = "Foundation_Numerics")]
2552pub struct SpatialBoundingFrustum {
2553 pub Near: super::super::Foundation::Numerics::Plane,
2554 pub Far: super::super::Foundation::Numerics::Plane,
2555 pub Right: super::super::Foundation::Numerics::Plane,
2556 pub Left: super::super::Foundation::Numerics::Plane,
2557 pub Top: super::super::Foundation::Numerics::Plane,
2558 pub Bottom: super::super::Foundation::Numerics::Plane,
2559}
2560#[cfg(feature = "Foundation_Numerics")]
2561impl ::core::marker::Copy for SpatialBoundingFrustum {}
2562#[cfg(feature = "Foundation_Numerics")]
2563impl ::core::clone::Clone for SpatialBoundingFrustum {
2564 fn clone(&self) -> Self {
2565 *self
2566 }
2567}
2568#[cfg(feature = "Foundation_Numerics")]
2569impl ::core::fmt::Debug for SpatialBoundingFrustum {
2570 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2571 f.debug_struct("SpatialBoundingFrustum").field("Near", &self.Near).field("Far", &self.Far).field("Right", &self.Right).field("Left", &self.Left).field("Top", &self.Top).field("Bottom", &self.Bottom).finish()
2572 }
2573}
2574#[cfg(feature = "Foundation_Numerics")]
2575impl ::windows::core::TypeKind for SpatialBoundingFrustum {
2576 type TypeKind = ::windows::core::CopyType;
2577}
2578#[cfg(feature = "Foundation_Numerics")]
2579impl ::windows::core::RuntimeType for SpatialBoundingFrustum {
2580 const SIGNATURE: ::windows::imp::ConstBuffer = ::windows::imp::ConstBuffer::from_slice(b"struct(Windows.Perception.Spatial.SpatialBoundingFrustum;struct(Windows.Foundation.Numerics.Plane;struct(Windows.Foundation.Numerics.Vector3;f4;f4;f4);f4);struct(Windows.Foundation.Numerics.Plane;struct(Windows.Foundation.Numerics.Vector3;f4;f4;f4);f4);struct(Windows.Foundation.Numerics.Plane;struct(Windows.Foundation.Numerics.Vector3;f4;f4;f4);f4);struct(Windows.Foundation.Numerics.Plane;struct(Windows.Foundation.Numerics.Vector3;f4;f4;f4);f4);struct(Windows.Foundation.Numerics.Plane;struct(Windows.Foundation.Numerics.Vector3;f4;f4;f4);f4);struct(Windows.Foundation.Numerics.Plane;struct(Windows.Foundation.Numerics.Vector3;f4;f4;f4);f4))");
2581}
2582#[cfg(feature = "Foundation_Numerics")]
2583impl ::core::cmp::PartialEq for SpatialBoundingFrustum {
2584 fn eq(&self, other: &Self) -> bool {
2585 self.Near == other.Near && self.Far == other.Far && self.Right == other.Right && self.Left == other.Left && self.Top == other.Top && self.Bottom == other.Bottom
2586 }
2587}
2588#[cfg(feature = "Foundation_Numerics")]
2589impl ::core::cmp::Eq for SpatialBoundingFrustum {}
2590#[cfg(feature = "Foundation_Numerics")]
2591impl ::core::default::Default for SpatialBoundingFrustum {
2592 fn default() -> Self {
2593 unsafe { ::core::mem::zeroed() }
2594 }
2595}
2596#[repr(C)]
2597#[doc = "*Required features: `\"Perception_Spatial\"`, `\"Foundation_Numerics\"`*"]
2598#[cfg(feature = "Foundation_Numerics")]
2599pub struct SpatialBoundingOrientedBox {
2600 pub Center: super::super::Foundation::Numerics::Vector3,
2601 pub Extents: super::super::Foundation::Numerics::Vector3,
2602 pub Orientation: super::super::Foundation::Numerics::Quaternion,
2603}
2604#[cfg(feature = "Foundation_Numerics")]
2605impl ::core::marker::Copy for SpatialBoundingOrientedBox {}
2606#[cfg(feature = "Foundation_Numerics")]
2607impl ::core::clone::Clone for SpatialBoundingOrientedBox {
2608 fn clone(&self) -> Self {
2609 *self
2610 }
2611}
2612#[cfg(feature = "Foundation_Numerics")]
2613impl ::core::fmt::Debug for SpatialBoundingOrientedBox {
2614 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2615 f.debug_struct("SpatialBoundingOrientedBox").field("Center", &self.Center).field("Extents", &self.Extents).field("Orientation", &self.Orientation).finish()
2616 }
2617}
2618#[cfg(feature = "Foundation_Numerics")]
2619impl ::windows::core::TypeKind for SpatialBoundingOrientedBox {
2620 type TypeKind = ::windows::core::CopyType;
2621}
2622#[cfg(feature = "Foundation_Numerics")]
2623impl ::windows::core::RuntimeType for SpatialBoundingOrientedBox {
2624 const SIGNATURE: ::windows::imp::ConstBuffer = ::windows::imp::ConstBuffer::from_slice(b"struct(Windows.Perception.Spatial.SpatialBoundingOrientedBox;struct(Windows.Foundation.Numerics.Vector3;f4;f4;f4);struct(Windows.Foundation.Numerics.Vector3;f4;f4;f4);struct(Windows.Foundation.Numerics.Quaternion;f4;f4;f4;f4))");
2625}
2626#[cfg(feature = "Foundation_Numerics")]
2627impl ::core::cmp::PartialEq for SpatialBoundingOrientedBox {
2628 fn eq(&self, other: &Self) -> bool {
2629 self.Center == other.Center && self.Extents == other.Extents && self.Orientation == other.Orientation
2630 }
2631}
2632#[cfg(feature = "Foundation_Numerics")]
2633impl ::core::cmp::Eq for SpatialBoundingOrientedBox {}
2634#[cfg(feature = "Foundation_Numerics")]
2635impl ::core::default::Default for SpatialBoundingOrientedBox {
2636 fn default() -> Self {
2637 unsafe { ::core::mem::zeroed() }
2638 }
2639}
2640#[repr(C)]
2641#[doc = "*Required features: `\"Perception_Spatial\"`, `\"Foundation_Numerics\"`*"]
2642#[cfg(feature = "Foundation_Numerics")]
2643pub struct SpatialBoundingSphere {
2644 pub Center: super::super::Foundation::Numerics::Vector3,
2645 pub Radius: f32,
2646}
2647#[cfg(feature = "Foundation_Numerics")]
2648impl ::core::marker::Copy for SpatialBoundingSphere {}
2649#[cfg(feature = "Foundation_Numerics")]
2650impl ::core::clone::Clone for SpatialBoundingSphere {
2651 fn clone(&self) -> Self {
2652 *self
2653 }
2654}
2655#[cfg(feature = "Foundation_Numerics")]
2656impl ::core::fmt::Debug for SpatialBoundingSphere {
2657 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2658 f.debug_struct("SpatialBoundingSphere").field("Center", &self.Center).field("Radius", &self.Radius).finish()
2659 }
2660}
2661#[cfg(feature = "Foundation_Numerics")]
2662impl ::windows::core::TypeKind for SpatialBoundingSphere {
2663 type TypeKind = ::windows::core::CopyType;
2664}
2665#[cfg(feature = "Foundation_Numerics")]
2666impl ::windows::core::RuntimeType for SpatialBoundingSphere {
2667 const SIGNATURE: ::windows::imp::ConstBuffer = ::windows::imp::ConstBuffer::from_slice(b"struct(Windows.Perception.Spatial.SpatialBoundingSphere;struct(Windows.Foundation.Numerics.Vector3;f4;f4;f4);f4)");
2668}
2669#[cfg(feature = "Foundation_Numerics")]
2670impl ::core::cmp::PartialEq for SpatialBoundingSphere {
2671 fn eq(&self, other: &Self) -> bool {
2672 self.Center == other.Center && self.Radius == other.Radius
2673 }
2674}
2675#[cfg(feature = "Foundation_Numerics")]
2676impl ::core::cmp::Eq for SpatialBoundingSphere {}
2677#[cfg(feature = "Foundation_Numerics")]
2678impl ::core::default::Default for SpatialBoundingSphere {
2679 fn default() -> Self {
2680 unsafe { ::core::mem::zeroed() }
2681 }
2682}
2683#[repr(C)]
2684#[doc = "*Required features: `\"Perception_Spatial\"`, `\"Foundation_Numerics\"`*"]
2685#[cfg(feature = "Foundation_Numerics")]
2686pub struct SpatialRay {
2687 pub Origin: super::super::Foundation::Numerics::Vector3,
2688 pub Direction: super::super::Foundation::Numerics::Vector3,
2689}
2690#[cfg(feature = "Foundation_Numerics")]
2691impl ::core::marker::Copy for SpatialRay {}
2692#[cfg(feature = "Foundation_Numerics")]
2693impl ::core::clone::Clone for SpatialRay {
2694 fn clone(&self) -> Self {
2695 *self
2696 }
2697}
2698#[cfg(feature = "Foundation_Numerics")]
2699impl ::core::fmt::Debug for SpatialRay {
2700 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2701 f.debug_struct("SpatialRay").field("Origin", &self.Origin).field("Direction", &self.Direction).finish()
2702 }
2703}
2704#[cfg(feature = "Foundation_Numerics")]
2705impl ::windows::core::TypeKind for SpatialRay {
2706 type TypeKind = ::windows::core::CopyType;
2707}
2708#[cfg(feature = "Foundation_Numerics")]
2709impl ::windows::core::RuntimeType for SpatialRay {
2710 const SIGNATURE: ::windows::imp::ConstBuffer = ::windows::imp::ConstBuffer::from_slice(b"struct(Windows.Perception.Spatial.SpatialRay;struct(Windows.Foundation.Numerics.Vector3;f4;f4;f4);struct(Windows.Foundation.Numerics.Vector3;f4;f4;f4))");
2711}
2712#[cfg(feature = "Foundation_Numerics")]
2713impl ::core::cmp::PartialEq for SpatialRay {
2714 fn eq(&self, other: &Self) -> bool {
2715 self.Origin == other.Origin && self.Direction == other.Direction
2716 }
2717}
2718#[cfg(feature = "Foundation_Numerics")]
2719impl ::core::cmp::Eq for SpatialRay {}
2720#[cfg(feature = "Foundation_Numerics")]
2721impl ::core::default::Default for SpatialRay {
2722 fn default() -> Self {
2723 unsafe { ::core::mem::zeroed() }
2724 }
2725}
2726#[cfg(feature = "implement")]
2727::core::include!("impl.rs");