1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
//! This file has been automatically generated by `objc2`'s `header-translator`.
//! DO NOT EDIT
use core::ptr::NonNull;
#[cfg(feature = "objc2")]
use objc2::__framework_prelude::*;
#[cfg(feature = "objc2-foundation")]
use objc2_foundation::*;
use crate::*;
#[cfg(feature = "objc2")]
extern_protocol!(
/// An anchor object that can be copied from values of an existing anchor.
///
/// See also [Apple's documentation](https://developer.apple.com/documentation/arkit/aranchorcopying?language=objc)
#[cfg(all(feature = "objc2", feature = "objc2-foundation"))]
pub unsafe trait ARAnchorCopying: NSCopying {
/// Initializes a new anchor object copying values from an existing anchor.
///
/// This initializer will be called any time copy is called on anchor of this class.
/// This method must be implemented for any ARAnchor subclasses that adds properties.
///
/// Parameter `anchor`: The anchor from which to copy values.
#[unsafe(method(initWithAnchor:))]
#[unsafe(method_family = init)]
unsafe fn initWithAnchor(this: Allocated<Self>, anchor: &ARAnchor) -> Retained<Self>;
}
);
#[cfg(feature = "objc2")]
extern_protocol!(
/// A real world object or location in the scene that is being tracked.
///
/// See also [Apple's documentation](https://developer.apple.com/documentation/arkit/artrackable?language=objc)
#[cfg(feature = "objc2")]
pub unsafe trait ARTrackable: NSObjectProtocol {
/// Tracking state of the anchor
///
/// The isTracked value is used to determine the anchor transform’s validity. When the object being tracked is no longer detected in the
/// camera image, its anchor will return NO for isTracked.
#[unsafe(method(isTracked))]
#[unsafe(method_family = none)]
unsafe fn isTracked(&self) -> bool;
}
);
#[cfg(feature = "objc2")]
extern_class!(
/// Object representing a physical location and orientation in 3D space.
///
/// See also [Apple's documentation](https://developer.apple.com/documentation/arkit/aranchor?language=objc)
#[unsafe(super(NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
#[cfg(feature = "objc2")]
pub struct ARAnchor;
);
#[cfg(feature = "objc2")]
unsafe impl Send for ARAnchor {}
#[cfg(feature = "objc2")]
unsafe impl Sync for ARAnchor {}
#[cfg(all(feature = "objc2", feature = "objc2-foundation"))]
extern_conformance!(
unsafe impl ARAnchorCopying for ARAnchor {}
);
#[cfg(all(feature = "objc2", feature = "objc2-foundation"))]
extern_conformance!(
unsafe impl NSCoding for ARAnchor {}
);
#[cfg(all(feature = "objc2", feature = "objc2-foundation"))]
extern_conformance!(
unsafe impl NSCopying for ARAnchor {}
);
#[cfg(all(feature = "objc2", feature = "objc2-foundation"))]
unsafe impl CopyingHelper for ARAnchor {
type Result = Self;
}
#[cfg(feature = "objc2")]
extern_conformance!(
unsafe impl NSObjectProtocol for ARAnchor {}
);
#[cfg(all(feature = "objc2", feature = "objc2-foundation"))]
extern_conformance!(
unsafe impl NSSecureCoding for ARAnchor {}
);
#[cfg(feature = "objc2")]
impl ARAnchor {
extern_methods!(
#[cfg(feature = "objc2-foundation")]
/// Unique identifier of the anchor.
///
/// This property is not atomic.
///
/// # Safety
///
/// This might not be thread-safe.
#[unsafe(method(identifier))]
#[unsafe(method_family = none)]
pub unsafe fn identifier(&self) -> Retained<NSUUID>;
#[cfg(feature = "objc2-foundation")]
/// An optional name used to associate with the anchor.
///
/// This property is not atomic.
///
/// # Safety
///
/// This might not be thread-safe.
#[unsafe(method(name))]
#[unsafe(method_family = none)]
pub unsafe fn name(&self) -> Option<Retained<NSString>>;
#[cfg(feature = "objc2-foundation")]
/// Identifier of the session that owns the anchor.
///
///
/// The session identifier will be assigned to anchor when added to the session.
///
/// This property is not atomic.
///
/// # Safety
///
/// This might not be thread-safe.
#[unsafe(method(sessionIdentifier))]
#[unsafe(method_family = none)]
pub unsafe fn sessionIdentifier(&self) -> Option<Retained<NSUUID>>;
/// Unavailable
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub unsafe fn new() -> Retained<Self>;
);
}