objc2_vision/generated/
VNDetectHumanBodyPoseRequest.rs

1//! This file has been automatically generated by `objc2`'s `header-translator`.
2//! DO NOT EDIT
3use core::ptr::NonNull;
4use objc2::__framework_prelude::*;
5use objc2_foundation::*;
6
7use crate::*;
8
9extern "C" {
10    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnbodylandmarkkeynose?language=objc)
11    #[cfg(feature = "VNTypes")]
12    pub static VNBodyLandmarkKeyNose: &'static VNRecognizedPointKey;
13}
14
15extern "C" {
16    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnbodylandmarkkeylefteye?language=objc)
17    #[cfg(feature = "VNTypes")]
18    pub static VNBodyLandmarkKeyLeftEye: &'static VNRecognizedPointKey;
19}
20
21extern "C" {
22    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnbodylandmarkkeyrighteye?language=objc)
23    #[cfg(feature = "VNTypes")]
24    pub static VNBodyLandmarkKeyRightEye: &'static VNRecognizedPointKey;
25}
26
27extern "C" {
28    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnbodylandmarkkeyleftear?language=objc)
29    #[cfg(feature = "VNTypes")]
30    pub static VNBodyLandmarkKeyLeftEar: &'static VNRecognizedPointKey;
31}
32
33extern "C" {
34    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnbodylandmarkkeyrightear?language=objc)
35    #[cfg(feature = "VNTypes")]
36    pub static VNBodyLandmarkKeyRightEar: &'static VNRecognizedPointKey;
37}
38
39extern "C" {
40    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnbodylandmarkkeyleftshoulder?language=objc)
41    #[cfg(feature = "VNTypes")]
42    pub static VNBodyLandmarkKeyLeftShoulder: &'static VNRecognizedPointKey;
43}
44
45extern "C" {
46    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnbodylandmarkkeyrightshoulder?language=objc)
47    #[cfg(feature = "VNTypes")]
48    pub static VNBodyLandmarkKeyRightShoulder: &'static VNRecognizedPointKey;
49}
50
51extern "C" {
52    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnbodylandmarkkeyneck?language=objc)
53    #[cfg(feature = "VNTypes")]
54    pub static VNBodyLandmarkKeyNeck: &'static VNRecognizedPointKey;
55}
56
57extern "C" {
58    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnbodylandmarkkeyleftelbow?language=objc)
59    #[cfg(feature = "VNTypes")]
60    pub static VNBodyLandmarkKeyLeftElbow: &'static VNRecognizedPointKey;
61}
62
63extern "C" {
64    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnbodylandmarkkeyrightelbow?language=objc)
65    #[cfg(feature = "VNTypes")]
66    pub static VNBodyLandmarkKeyRightElbow: &'static VNRecognizedPointKey;
67}
68
69extern "C" {
70    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnbodylandmarkkeyleftwrist?language=objc)
71    #[cfg(feature = "VNTypes")]
72    pub static VNBodyLandmarkKeyLeftWrist: &'static VNRecognizedPointKey;
73}
74
75extern "C" {
76    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnbodylandmarkkeyrightwrist?language=objc)
77    #[cfg(feature = "VNTypes")]
78    pub static VNBodyLandmarkKeyRightWrist: &'static VNRecognizedPointKey;
79}
80
81extern "C" {
82    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnbodylandmarkkeylefthip?language=objc)
83    #[cfg(feature = "VNTypes")]
84    pub static VNBodyLandmarkKeyLeftHip: &'static VNRecognizedPointKey;
85}
86
87extern "C" {
88    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnbodylandmarkkeyrighthip?language=objc)
89    #[cfg(feature = "VNTypes")]
90    pub static VNBodyLandmarkKeyRightHip: &'static VNRecognizedPointKey;
91}
92
93extern "C" {
94    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnbodylandmarkkeyroot?language=objc)
95    #[cfg(feature = "VNTypes")]
96    pub static VNBodyLandmarkKeyRoot: &'static VNRecognizedPointKey;
97}
98
99extern "C" {
100    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnbodylandmarkkeyleftknee?language=objc)
101    #[cfg(feature = "VNTypes")]
102    pub static VNBodyLandmarkKeyLeftKnee: &'static VNRecognizedPointKey;
103}
104
105extern "C" {
106    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnbodylandmarkkeyrightknee?language=objc)
107    #[cfg(feature = "VNTypes")]
108    pub static VNBodyLandmarkKeyRightKnee: &'static VNRecognizedPointKey;
109}
110
111extern "C" {
112    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnbodylandmarkkeyleftankle?language=objc)
113    #[cfg(feature = "VNTypes")]
114    pub static VNBodyLandmarkKeyLeftAnkle: &'static VNRecognizedPointKey;
115}
116
117extern "C" {
118    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnbodylandmarkkeyrightankle?language=objc)
119    #[cfg(feature = "VNTypes")]
120    pub static VNBodyLandmarkKeyRightAnkle: &'static VNRecognizedPointKey;
121}
122
123extern "C" {
124    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnbodylandmarkregionkeyface?language=objc)
125    #[cfg(feature = "VNTypes")]
126    pub static VNBodyLandmarkRegionKeyFace: &'static VNRecognizedPointGroupKey;
127}
128
129extern "C" {
130    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnbodylandmarkregionkeytorso?language=objc)
131    #[cfg(feature = "VNTypes")]
132    pub static VNBodyLandmarkRegionKeyTorso: &'static VNRecognizedPointGroupKey;
133}
134
135extern "C" {
136    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnbodylandmarkregionkeyleftarm?language=objc)
137    #[cfg(feature = "VNTypes")]
138    pub static VNBodyLandmarkRegionKeyLeftArm: &'static VNRecognizedPointGroupKey;
139}
140
141extern "C" {
142    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnbodylandmarkregionkeyrightarm?language=objc)
143    #[cfg(feature = "VNTypes")]
144    pub static VNBodyLandmarkRegionKeyRightArm: &'static VNRecognizedPointGroupKey;
145}
146
147extern "C" {
148    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnbodylandmarkregionkeyleftleg?language=objc)
149    #[cfg(feature = "VNTypes")]
150    pub static VNBodyLandmarkRegionKeyLeftLeg: &'static VNRecognizedPointGroupKey;
151}
152
153extern "C" {
154    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnbodylandmarkregionkeyrightleg?language=objc)
155    #[cfg(feature = "VNTypes")]
156    pub static VNBodyLandmarkRegionKeyRightLeg: &'static VNRecognizedPointGroupKey;
157}
158
159/// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservationjointname?language=objc)
160// NS_TYPED_ENUM
161#[cfg(feature = "VNTypes")]
162pub type VNHumanBodyPoseObservationJointName = VNRecognizedPointKey;
163
164extern "C" {
165    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservationjointnamenose?language=objc)
166    #[cfg(feature = "VNTypes")]
167    pub static VNHumanBodyPoseObservationJointNameNose:
168        &'static VNHumanBodyPoseObservationJointName;
169}
170
171extern "C" {
172    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservationjointnamelefteye?language=objc)
173    #[cfg(feature = "VNTypes")]
174    pub static VNHumanBodyPoseObservationJointNameLeftEye:
175        &'static VNHumanBodyPoseObservationJointName;
176}
177
178extern "C" {
179    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservationjointnamerighteye?language=objc)
180    #[cfg(feature = "VNTypes")]
181    pub static VNHumanBodyPoseObservationJointNameRightEye:
182        &'static VNHumanBodyPoseObservationJointName;
183}
184
185extern "C" {
186    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservationjointnameleftear?language=objc)
187    #[cfg(feature = "VNTypes")]
188    pub static VNHumanBodyPoseObservationJointNameLeftEar:
189        &'static VNHumanBodyPoseObservationJointName;
190}
191
192extern "C" {
193    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservationjointnamerightear?language=objc)
194    #[cfg(feature = "VNTypes")]
195    pub static VNHumanBodyPoseObservationJointNameRightEar:
196        &'static VNHumanBodyPoseObservationJointName;
197}
198
199extern "C" {
200    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservationjointnameleftshoulder?language=objc)
201    #[cfg(feature = "VNTypes")]
202    pub static VNHumanBodyPoseObservationJointNameLeftShoulder:
203        &'static VNHumanBodyPoseObservationJointName;
204}
205
206extern "C" {
207    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservationjointnamerightshoulder?language=objc)
208    #[cfg(feature = "VNTypes")]
209    pub static VNHumanBodyPoseObservationJointNameRightShoulder:
210        &'static VNHumanBodyPoseObservationJointName;
211}
212
213extern "C" {
214    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservationjointnameneck?language=objc)
215    #[cfg(feature = "VNTypes")]
216    pub static VNHumanBodyPoseObservationJointNameNeck:
217        &'static VNHumanBodyPoseObservationJointName;
218}
219
220extern "C" {
221    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservationjointnameleftelbow?language=objc)
222    #[cfg(feature = "VNTypes")]
223    pub static VNHumanBodyPoseObservationJointNameLeftElbow:
224        &'static VNHumanBodyPoseObservationJointName;
225}
226
227extern "C" {
228    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservationjointnamerightelbow?language=objc)
229    #[cfg(feature = "VNTypes")]
230    pub static VNHumanBodyPoseObservationJointNameRightElbow:
231        &'static VNHumanBodyPoseObservationJointName;
232}
233
234extern "C" {
235    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservationjointnameleftwrist?language=objc)
236    #[cfg(feature = "VNTypes")]
237    pub static VNHumanBodyPoseObservationJointNameLeftWrist:
238        &'static VNHumanBodyPoseObservationJointName;
239}
240
241extern "C" {
242    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservationjointnamerightwrist?language=objc)
243    #[cfg(feature = "VNTypes")]
244    pub static VNHumanBodyPoseObservationJointNameRightWrist:
245        &'static VNHumanBodyPoseObservationJointName;
246}
247
248extern "C" {
249    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservationjointnamelefthip?language=objc)
250    #[cfg(feature = "VNTypes")]
251    pub static VNHumanBodyPoseObservationJointNameLeftHip:
252        &'static VNHumanBodyPoseObservationJointName;
253}
254
255extern "C" {
256    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservationjointnamerighthip?language=objc)
257    #[cfg(feature = "VNTypes")]
258    pub static VNHumanBodyPoseObservationJointNameRightHip:
259        &'static VNHumanBodyPoseObservationJointName;
260}
261
262extern "C" {
263    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservationjointnameroot?language=objc)
264    #[cfg(feature = "VNTypes")]
265    pub static VNHumanBodyPoseObservationJointNameRoot:
266        &'static VNHumanBodyPoseObservationJointName;
267}
268
269extern "C" {
270    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservationjointnameleftknee?language=objc)
271    #[cfg(feature = "VNTypes")]
272    pub static VNHumanBodyPoseObservationJointNameLeftKnee:
273        &'static VNHumanBodyPoseObservationJointName;
274}
275
276extern "C" {
277    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservationjointnamerightknee?language=objc)
278    #[cfg(feature = "VNTypes")]
279    pub static VNHumanBodyPoseObservationJointNameRightKnee:
280        &'static VNHumanBodyPoseObservationJointName;
281}
282
283extern "C" {
284    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservationjointnameleftankle?language=objc)
285    #[cfg(feature = "VNTypes")]
286    pub static VNHumanBodyPoseObservationJointNameLeftAnkle:
287        &'static VNHumanBodyPoseObservationJointName;
288}
289
290extern "C" {
291    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservationjointnamerightankle?language=objc)
292    #[cfg(feature = "VNTypes")]
293    pub static VNHumanBodyPoseObservationJointNameRightAnkle:
294        &'static VNHumanBodyPoseObservationJointName;
295}
296
297/// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservationjointsgroupname?language=objc)
298// NS_TYPED_ENUM
299#[cfg(feature = "VNTypes")]
300pub type VNHumanBodyPoseObservationJointsGroupName = VNRecognizedPointGroupKey;
301
302extern "C" {
303    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservationjointsgroupnameface?language=objc)
304    #[cfg(feature = "VNTypes")]
305    pub static VNHumanBodyPoseObservationJointsGroupNameFace:
306        &'static VNHumanBodyPoseObservationJointsGroupName;
307}
308
309extern "C" {
310    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservationjointsgroupnametorso?language=objc)
311    #[cfg(feature = "VNTypes")]
312    pub static VNHumanBodyPoseObservationJointsGroupNameTorso:
313        &'static VNHumanBodyPoseObservationJointsGroupName;
314}
315
316extern "C" {
317    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservationjointsgroupnameleftarm?language=objc)
318    #[cfg(feature = "VNTypes")]
319    pub static VNHumanBodyPoseObservationJointsGroupNameLeftArm:
320        &'static VNHumanBodyPoseObservationJointsGroupName;
321}
322
323extern "C" {
324    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservationjointsgroupnamerightarm?language=objc)
325    #[cfg(feature = "VNTypes")]
326    pub static VNHumanBodyPoseObservationJointsGroupNameRightArm:
327        &'static VNHumanBodyPoseObservationJointsGroupName;
328}
329
330extern "C" {
331    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservationjointsgroupnameleftleg?language=objc)
332    #[cfg(feature = "VNTypes")]
333    pub static VNHumanBodyPoseObservationJointsGroupNameLeftLeg:
334        &'static VNHumanBodyPoseObservationJointsGroupName;
335}
336
337extern "C" {
338    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservationjointsgroupnamerightleg?language=objc)
339    #[cfg(feature = "VNTypes")]
340    pub static VNHumanBodyPoseObservationJointsGroupNameRightLeg:
341        &'static VNHumanBodyPoseObservationJointsGroupName;
342}
343
344extern "C" {
345    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservationjointsgroupnameall?language=objc)
346    #[cfg(feature = "VNTypes")]
347    pub static VNHumanBodyPoseObservationJointsGroupNameAll:
348        &'static VNHumanBodyPoseObservationJointsGroupName;
349}
350
351extern_class!(
352    /// [Apple's documentation](https://developer.apple.com/documentation/vision/vnhumanbodyposeobservation?language=objc)
353    #[unsafe(super(VNRecognizedPointsObservation, VNObservation, NSObject))]
354    #[derive(Debug, PartialEq, Eq, Hash)]
355    #[cfg(feature = "VNObservation")]
356    pub struct VNHumanBodyPoseObservation;
357);
358
359#[cfg(feature = "VNObservation")]
360unsafe impl NSCoding for VNHumanBodyPoseObservation {}
361
362#[cfg(feature = "VNObservation")]
363unsafe impl NSCopying for VNHumanBodyPoseObservation {}
364
365#[cfg(feature = "VNObservation")]
366unsafe impl CopyingHelper for VNHumanBodyPoseObservation {
367    type Result = Self;
368}
369
370#[cfg(feature = "VNObservation")]
371unsafe impl NSObjectProtocol for VNHumanBodyPoseObservation {}
372
373#[cfg(feature = "VNObservation")]
374unsafe impl NSSecureCoding for VNHumanBodyPoseObservation {}
375
376#[cfg(all(feature = "VNObservation", feature = "VNRequestRevisionProviding"))]
377unsafe impl VNRequestRevisionProviding for VNHumanBodyPoseObservation {}
378
379#[cfg(feature = "VNObservation")]
380impl VNHumanBodyPoseObservation {
381    extern_methods!(
382        #[cfg(feature = "VNTypes")]
383        /// All of the joint names available in the observation.
384        #[unsafe(method(availableJointNames))]
385        #[unsafe(method_family = none)]
386        pub unsafe fn availableJointNames(
387            &self,
388        ) -> Retained<NSArray<VNHumanBodyPoseObservationJointName>>;
389
390        #[cfg(feature = "VNTypes")]
391        /// All of the joints group names available in the observation.
392        #[unsafe(method(availableJointsGroupNames))]
393        #[unsafe(method_family = none)]
394        pub unsafe fn availableJointsGroupNames(
395            &self,
396        ) -> Retained<NSArray<VNHumanBodyPoseObservationJointsGroupName>>;
397
398        #[cfg(all(
399            feature = "VNDetectedPoint",
400            feature = "VNGeometry",
401            feature = "VNTypes"
402        ))]
403        /// Obtain a specific normalized point for a named human body joint.
404        ///
405        ///
406        /// Parameter `jointName`: The name of the human body joint.
407        ///
408        /// Parameter `error`: The address of a variable that will be populated with the error that describes the failure.  If the caller does not require this information, NULL can be passed.
409        ///
410        /// Returns: the recognized point, or nil if the point could not be obtained.
411        #[unsafe(method(recognizedPointForJointName:error:_))]
412        #[unsafe(method_family = none)]
413        pub unsafe fn recognizedPointForJointName_error(
414            &self,
415            joint_name: &VNHumanBodyPoseObservationJointName,
416        ) -> Result<Retained<VNRecognizedPoint>, Retained<NSError>>;
417
418        #[cfg(all(
419            feature = "VNDetectedPoint",
420            feature = "VNGeometry",
421            feature = "VNTypes"
422        ))]
423        /// Obtains the collection of points associated with a named human body joints group.
424        ///
425        ///
426        /// The obtained collection is a dictionary that provides the mapping of human body join names to the recognized point.
427        ///
428        ///
429        /// Parameter `jointsGroupName`: The name of the human body joints group.
430        ///
431        /// Parameter `error`: The address of a variable that will be populated with the error that describes the failure.  If the caller does not require this information, NULL can be passed.
432        ///
433        /// Returns: a dictionary of recognized points in the group, or nil if an error was encountered.
434        #[unsafe(method(recognizedPointsForJointsGroupName:error:_))]
435        #[unsafe(method_family = none)]
436        pub unsafe fn recognizedPointsForJointsGroupName_error(
437            &self,
438            joints_group_name: &VNHumanBodyPoseObservationJointsGroupName,
439        ) -> Result<
440            Retained<NSDictionary<VNHumanBodyPoseObservationJointName, VNRecognizedPoint>>,
441            Retained<NSError>,
442        >;
443    );
444}
445
446/// Methods declared on superclass `VNRecognizedPointsObservation`.
447#[cfg(feature = "VNObservation")]
448impl VNHumanBodyPoseObservation {
449    extern_methods!(
450        #[unsafe(method(new))]
451        #[unsafe(method_family = new)]
452        pub unsafe fn new() -> Retained<Self>;
453
454        #[unsafe(method(init))]
455        #[unsafe(method_family = init)]
456        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
457    );
458}
459
460extern_class!(
461    /// Detects specific landmark points on human bodies.
462    ///
463    /// This request will produce a collection of VNHumanBodyPoseObservation objects which describe the pose of each detected human body.
464    ///
465    /// See also [Apple's documentation](https://developer.apple.com/documentation/vision/vndetecthumanbodyposerequest?language=objc)
466    #[unsafe(super(VNImageBasedRequest, VNRequest, NSObject))]
467    #[derive(Debug, PartialEq, Eq, Hash)]
468    #[cfg(feature = "VNRequest")]
469    pub struct VNDetectHumanBodyPoseRequest;
470);
471
472#[cfg(feature = "VNRequest")]
473unsafe impl NSCopying for VNDetectHumanBodyPoseRequest {}
474
475#[cfg(feature = "VNRequest")]
476unsafe impl CopyingHelper for VNDetectHumanBodyPoseRequest {
477    type Result = Self;
478}
479
480#[cfg(feature = "VNRequest")]
481unsafe impl NSObjectProtocol for VNDetectHumanBodyPoseRequest {}
482
483#[cfg(feature = "VNRequest")]
484impl VNDetectHumanBodyPoseRequest {
485    extern_methods!(
486        #[cfg(feature = "VNTypes")]
487        /// Obtain the collection of human body joint names that are supported by a given request revision.
488        ///
489        /// Parameter `revision`: The revision of VNDetectHumanBodyPoseRequest being queried.
490        ///
491        /// Parameter `error`: The address of a variable that will be populated with an error upon failure.  If the caller does not need this information, NULL can be passed.
492        ///
493        /// Returns: An array of VNHumanBodyPoseObservationJointName symbols that are supported by the request revision, or nil if a failure occurs.
494        #[deprecated]
495        #[unsafe(method(supportedJointNamesForRevision:error:_))]
496        #[unsafe(method_family = none)]
497        pub unsafe fn supportedJointNamesForRevision_error(
498            revision: NSUInteger,
499        ) -> Result<Retained<NSArray<VNHumanBodyPoseObservationJointName>>, Retained<NSError>>;
500
501        #[cfg(feature = "VNTypes")]
502        /// Obtain the collection of human body joint names that are supported by a given request object configured with a specific revision.
503        ///
504        /// Parameter `error`: The address of a variable that will be populated with an error upon failure.  If the caller does not need this information, NULL can be passed.
505        ///
506        /// Returns: An array of VNHumanBodyPoseObservationJointName symbols that are supported by the request revision, or nil if a failure occurs.
507        #[unsafe(method(supportedJointNamesAndReturnError:_))]
508        #[unsafe(method_family = none)]
509        pub unsafe fn supportedJointNamesAndReturnError(
510            &self,
511        ) -> Result<Retained<NSArray<VNHumanBodyPoseObservationJointName>>, Retained<NSError>>;
512
513        #[cfg(feature = "VNTypes")]
514        /// Obtain the collection of human body joints group names that are supported by a given request revision.
515        ///
516        /// Parameter `revision`: The revision of VNDetectHumanBodyPoseRequest being queried.
517        ///
518        /// Parameter `error`: The address of a variable that will be populated with an error upon failure.  If the caller does not need this information, NULL can be passed.
519        ///
520        /// Returns: An array of VNHumanBodyPoseObservationJointsGroupName symbols that are supported by the request revision, or nil if a failure occurs.
521        #[deprecated]
522        #[unsafe(method(supportedJointsGroupNamesForRevision:error:_))]
523        #[unsafe(method_family = none)]
524        pub unsafe fn supportedJointsGroupNamesForRevision_error(
525            revision: NSUInteger,
526        ) -> Result<Retained<NSArray<VNHumanBodyPoseObservationJointsGroupName>>, Retained<NSError>>;
527
528        #[cfg(feature = "VNTypes")]
529        /// Obtain the collection of human body joints group names that are supported by a given request object configured with a specific revision.
530        ///
531        /// Parameter `error`: The address of a variable that will be populated with an error upon failure.  If the caller does not need this information, NULL can be passed.
532        ///
533        /// Returns: An array of VNHumanBodyPoseObservationJointsGroupName symbols that are supported by the request revision, or nil if a failure occurs.
534        #[unsafe(method(supportedJointsGroupNamesAndReturnError:_))]
535        #[unsafe(method_family = none)]
536        pub unsafe fn supportedJointsGroupNamesAndReturnError(
537            &self,
538        ) -> Result<Retained<NSArray<VNHumanBodyPoseObservationJointsGroupName>>, Retained<NSError>>;
539
540        #[cfg(feature = "VNObservation")]
541        /// VNHumanBodyPoseObservation results.
542        #[unsafe(method(results))]
543        #[unsafe(method_family = none)]
544        pub unsafe fn results(&self) -> Option<Retained<NSArray<VNHumanBodyPoseObservation>>>;
545    );
546}
547
548/// Methods declared on superclass `VNRequest`.
549#[cfg(feature = "VNRequest")]
550impl VNDetectHumanBodyPoseRequest {
551    extern_methods!(
552        /// Creates a new VNRequest with no completion handler.
553        #[unsafe(method(init))]
554        #[unsafe(method_family = init)]
555        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
556
557        #[cfg(feature = "block2")]
558        /// Creates a new VNRequest with an optional completion handler.
559        ///
560        ///
561        /// Parameter `completionHandler`: The block to be invoked after the request has completed its processing. The completion handler gets executed on the same dispatch queue as the request being executed.
562        #[unsafe(method(initWithCompletionHandler:))]
563        #[unsafe(method_family = init)]
564        pub unsafe fn initWithCompletionHandler(
565            this: Allocated<Self>,
566            completion_handler: VNRequestCompletionHandler,
567        ) -> Retained<Self>;
568    );
569}
570
571/// Methods declared on superclass `NSObject`.
572#[cfg(feature = "VNRequest")]
573impl VNDetectHumanBodyPoseRequest {
574    extern_methods!(
575        #[unsafe(method(new))]
576        #[unsafe(method_family = new)]
577        pub unsafe fn new() -> Retained<Self>;
578    );
579}
580
581/// [Apple's documentation](https://developer.apple.com/documentation/vision/vndetecthumanbodyposerequestrevision1?language=objc)
582pub static VNDetectHumanBodyPoseRequestRevision1: NSUInteger = 1;