pub struct ARFrame { /* private fields */ }ARFrame and objc2 only.Expand description
An object encapsulating the state of everything being tracked for a given moment in time.
The model provides a snapshot of all data needed to render a given frame.
See also Apple’s documentation
Implementations§
Source§impl ARFrame
impl ARFrame
Sourcepub unsafe fn timestamp(&self) -> NSTimeInterval
Available on crate feature objc2-foundation only.
pub unsafe fn timestamp(&self) -> NSTimeInterval
objc2-foundation only.A timestamp identifying the frame.
This property is not atomic.
§Safety
This might not be thread-safe.
Sourcepub unsafe fn capturedImage(&self) -> Retained<CVPixelBuffer>
Available on crate feature objc2-core-video only.
pub unsafe fn capturedImage(&self) -> Retained<CVPixelBuffer>
objc2-core-video only.Sourcepub unsafe fn exifData(&self) -> Retained<NSDictionary<NSString, AnyObject>>
Available on crate feature objc2-foundation only.
pub unsafe fn exifData(&self) -> Retained<NSDictionary<NSString, AnyObject>>
objc2-foundation only.A dictionary of EXIF metadata for the captured image.
This property is not atomic.
§Safety
This might not be thread-safe.
Sourcepub unsafe fn cameraGrainTexture(
&self,
) -> Option<Retained<ProtocolObject<dyn MTLTexture>>>
Available on crate feature objc2-metal only.
pub unsafe fn cameraGrainTexture( &self, ) -> Option<Retained<ProtocolObject<dyn MTLTexture>>>
objc2-metal only.A tileable texture that contains image noise matching the current camera streams noise properties.
A camera stream depicts image noise that gives the captured image a grainy look and varies with light conditions. The variations are stored along the depth dimension of the camera grain texture and can be selected at runtime using the camera grain intensity of the current frame.
This property is not atomic.
§Safety
This might not be thread-safe.
Sourcepub unsafe fn cameraGrainIntensity(&self) -> c_float
pub unsafe fn cameraGrainIntensity(&self) -> c_float
The frame’s camera grain intensity in range 0 to 1.
A camera stream depicts image noise that gives the captured image a grainy look and varies with light conditions. The camera grain intensity can be used to select a texture slice from the frames camera grain texture.
This property is not atomic.
§Safety
This might not be thread-safe.
Sourcepub unsafe fn capturedDepthData(&self) -> Option<Retained<AVDepthData>>
Available on crate feature objc2-av-foundation only.
pub unsafe fn capturedDepthData(&self) -> Option<Retained<AVDepthData>>
objc2-av-foundation only.The frame’s captured depth data.
Depth data is only provided with face tracking on frames where depth data was captured.
This property is not atomic.
§Safety
This might not be thread-safe.
Sourcepub unsafe fn capturedDepthDataTimestamp(&self) -> NSTimeInterval
Available on crate feature objc2-foundation only.
pub unsafe fn capturedDepthDataTimestamp(&self) -> NSTimeInterval
objc2-foundation only.A timestamp identifying the depth data.
This property is not atomic.
§Safety
This might not be thread-safe.
Sourcepub unsafe fn camera(&self) -> Retained<ARCamera>
Available on crate feature ARCamera only.
pub unsafe fn camera(&self) -> Retained<ARCamera>
ARCamera only.The camera used to capture the frame’s image.
The camera provides the device’s position and orientation as well as camera parameters.
This property is not atomic.
§Safety
This might not be thread-safe.
Sourcepub unsafe fn anchors(&self) -> Retained<NSArray<ARAnchor>>
Available on crate features ARAnchor and objc2-foundation only.
pub unsafe fn anchors(&self) -> Retained<NSArray<ARAnchor>>
ARAnchor and objc2-foundation only.Sourcepub unsafe fn lightEstimate(&self) -> Option<Retained<ARLightEstimate>>
Available on crate feature ARLightEstimate only.
pub unsafe fn lightEstimate(&self) -> Option<Retained<ARLightEstimate>>
ARLightEstimate only.A light estimate representing the light in the scene.
Returns nil if there is no light estimation.
This property is not atomic.
§Safety
This might not be thread-safe.
Sourcepub unsafe fn rawFeaturePoints(&self) -> Option<Retained<ARPointCloud>>
Available on crate feature ARPointCloud only.
pub unsafe fn rawFeaturePoints(&self) -> Option<Retained<ARPointCloud>>
ARPointCloud only.Feature points in the scene with respect to the frame’s origin.
The feature points are only provided for configurations using world tracking.
This property is not atomic.
§Safety
This might not be thread-safe.
Sourcepub unsafe fn worldMappingStatus(&self) -> ARWorldMappingStatus
pub unsafe fn worldMappingStatus(&self) -> ARWorldMappingStatus
The status of world mapping for the area visible to the frame.
This can be used to identify the state of the world map for the visible area and if additional scanning should be done before saving a world map.
This property is not atomic.
§Safety
This might not be thread-safe.
Sourcepub unsafe fn segmentationBuffer(&self) -> Option<Retained<CVPixelBuffer>>
Available on crate feature objc2-core-video only.
pub unsafe fn segmentationBuffer(&self) -> Option<Retained<CVPixelBuffer>>
objc2-core-video only.A buffer that represents the segmented content of the capturedImage.
In order to identify to which class a pixel has been classified one needs to compare its intensity value with the values
found in ARSegmentationClass.
See: ARSegmentationClass
See: -[ARConfiguration setFrameSemantics:]
This property is not atomic.
§Safety
This might not be thread-safe.
Sourcepub unsafe fn estimatedDepthData(&self) -> Option<Retained<CVPixelBuffer>>
Available on crate feature objc2-core-video only.
pub unsafe fn estimatedDepthData(&self) -> Option<Retained<CVPixelBuffer>>
objc2-core-video only.A buffer that represents the estimated depth values for a performed segmentation.
For each non-background pixel in the segmentation buffer the corresponding depth value can be accessed in this buffer.
See: -[ARConfiguration setFrameSemantics:]
See: -[ARFrame segmentationBuffer]
This property is not atomic.
§Safety
This might not be thread-safe.
Sourcepub unsafe fn detectedBody(&self) -> Option<Retained<ARBody2D>>
Available on crate feature ARBody2D only.
pub unsafe fn detectedBody(&self) -> Option<Retained<ARBody2D>>
ARBody2D only.A detected body in the current frame.
See: -[ARConfiguration setFrameSemantics:]
This property is not atomic.
§Safety
This might not be thread-safe.
Sourcepub unsafe fn geoTrackingStatus(&self) -> Option<Retained<ARGeoTrackingStatus>>
Available on crate feature ARGeoTrackingTypes only.
pub unsafe fn geoTrackingStatus(&self) -> Option<Retained<ARGeoTrackingStatus>>
ARGeoTrackingTypes only.Sourcepub unsafe fn sceneDepth(&self) -> Option<Retained<ARDepthData>>
Available on crate feature ARDepthData only.
pub unsafe fn sceneDepth(&self) -> Option<Retained<ARDepthData>>
ARDepthData only.Scene depth data.
See: ARFrameSemanticSceneDepth.
See: -[ARConfiguration setFrameSemantics:]
This property is not atomic.
§Safety
This might not be thread-safe.
Sourcepub unsafe fn smoothedSceneDepth(&self) -> Option<Retained<ARDepthData>>
Available on crate feature ARDepthData only.
pub unsafe fn smoothedSceneDepth(&self) -> Option<Retained<ARDepthData>>
ARDepthData only.Scene depth data, smoothed for temporal consistency.
See: ARFrameSemanticSmoothedSceneDepth.
See: -[ARConfiguration setFrameSemantics:]
This property is not atomic.
§Safety
This might not be thread-safe.
Sourcepub unsafe fn hitTest_types(
&self,
point: CGPoint,
types: ARHitTestResultType,
) -> Retained<NSArray<ARHitTestResult>>
👎Deprecated: Use [ARSession raycast:]Available on crate features ARHitTestResult and objc2-core-foundation and objc2-foundation only.
pub unsafe fn hitTest_types( &self, point: CGPoint, types: ARHitTestResultType, ) -> Retained<NSArray<ARHitTestResult>>
ARHitTestResult and objc2-core-foundation and objc2-foundation only.Searches the frame for objects corresponding to a point in the captured image.
A 2D point in the captured image’s coordinate space can refer to any point along a line segment in the 3D coordinate space. Hit-testing is the process of finding objects in the world located along this line segment.
Parameter point: A point in the image-space coordinate system of the captured image.
Values should range from (0,0) - upper left corner to (1,1) - lower right corner.
Parameter types: The types of results to search for.
Returns: An array of all hit-test results sorted from nearest to farthest.
Sourcepub unsafe fn raycastQueryFromPoint_allowingTarget_alignment(
&self,
point: CGPoint,
target: ARRaycastTarget,
alignment: ARRaycastTargetAlignment,
) -> Retained<ARRaycastQuery>
Available on crate features ARRaycastQuery and objc2-core-foundation only.
pub unsafe fn raycastQueryFromPoint_allowingTarget_alignment( &self, point: CGPoint, target: ARRaycastTarget, alignment: ARRaycastTargetAlignment, ) -> Retained<ARRaycastQuery>
ARRaycastQuery and objc2-core-foundation only.Creates a raycast query originating from the point on the captured image, aligned along the center of the field of view of the camera.
A 2D point in the captured image’s coordinate space and the field of view of the frame’s camera is used to create a ray in the 3D cooridnate space originating at the point.
Parameter point: A point in the image-space coordinate system of the captured image.
Values should range from (0,0) - upper left corner to (1,1) - lower right corner.
Parameter target: Type of target where the ray should terminate.
Parameter alignment: Alignment of the target.
Sourcepub unsafe fn displayTransformForOrientation_viewportSize(
&self,
orientation: UIInterfaceOrientation,
viewport_size: CGSize,
) -> CGAffineTransform
Available on crate features objc2-core-foundation and objc2-ui-kit only.
pub unsafe fn displayTransformForOrientation_viewportSize( &self, orientation: UIInterfaceOrientation, viewport_size: CGSize, ) -> CGAffineTransform
objc2-core-foundation and objc2-ui-kit only.Returns a display transform for the provided viewport size and orientation.
The display transform can be used to convert normalized points in the image-space coordinate system of the captured image to normalized points in the view’s coordinate space. The transform provides the correct rotation and aspect-fill for presenting the captured image in the given orientation and size.
Parameter orientation: The orientation of the viewport.
Parameter viewportSize: The size of the viewport.
pub unsafe fn new() -> Retained<Self>
Methods from Deref<Target = NSObject>§
Sourcepub fn doesNotRecognizeSelector(&self, sel: Sel) -> !
pub fn doesNotRecognizeSelector(&self, sel: Sel) -> !
Handle messages the object doesn’t recognize.
See Apple’s documentation for details.
Methods from Deref<Target = AnyObject>§
Sourcepub fn class(&self) -> &'static AnyClass
pub fn class(&self) -> &'static AnyClass
Dynamically find the class of this object.
§Panics
May panic if the object is invalid (which may be the case for objects
returned from unavailable init/new methods).
§Example
Check that an instance of NSObject has the precise class NSObject.
use objc2::ClassType;
use objc2::runtime::NSObject;
let obj = NSObject::new();
assert_eq!(obj.class(), NSObject::class());Sourcepub unsafe fn get_ivar<T>(&self, name: &str) -> &Twhere
T: Encode,
👎Deprecated: this is difficult to use correctly, use Ivar::load instead.
pub unsafe fn get_ivar<T>(&self, name: &str) -> &Twhere
T: Encode,
Ivar::load instead.Use Ivar::load instead.
§Safety
The object must have an instance variable with the given name, and it
must be of type T.
See Ivar::load_ptr for details surrounding this.
Sourcepub fn downcast_ref<T>(&self) -> Option<&T>where
T: DowncastTarget,
pub fn downcast_ref<T>(&self) -> Option<&T>where
T: DowncastTarget,
Attempt to downcast the object to a class of type T.
This is the reference-variant. Use Retained::downcast if you want
to convert a retained object to another type.
§Mutable classes
Some classes have immutable and mutable variants, such as NSString
and NSMutableString.
When some Objective-C API signature says it gives you an immutable class, it generally expects you to not mutate that, even though it may technically be mutable “under the hood”.
So using this method to convert a NSString to a NSMutableString,
while not unsound, is generally frowned upon unless you created the
string yourself, or the API explicitly documents the string to be
mutable.
See Apple’s documentation on mutability and on
isKindOfClass: for more details.
§Generic classes
Objective-C generics are called “lightweight generics”, and that’s because they aren’t exposed in the runtime. This makes it impossible to safely downcast to generic collections, so this is disallowed by this method.
You can, however, safely downcast to generic collections where all the
type-parameters are AnyObject.
§Panics
This works internally by calling isKindOfClass:. That means that the
object must have the instance method of that name, and an exception
will be thrown (if CoreFoundation is linked) or the process will abort
if that is not the case. In the vast majority of cases, you don’t need
to worry about this, since both root objects NSObject and
NSProxy implement this method.
§Examples
Cast an NSString back and forth from NSObject.
use objc2::rc::Retained;
use objc2_foundation::{NSObject, NSString};
let obj: Retained<NSObject> = NSString::new().into_super();
let string = obj.downcast_ref::<NSString>().unwrap();
// Or with `downcast`, if we do not need the object afterwards
let string = obj.downcast::<NSString>().unwrap();Try (and fail) to cast an NSObject to an NSString.
use objc2_foundation::{NSObject, NSString};
let obj = NSObject::new();
assert!(obj.downcast_ref::<NSString>().is_none());Try to cast to an array of strings.
use objc2_foundation::{NSArray, NSObject, NSString};
let arr = NSArray::from_retained_slice(&[NSObject::new()]);
// This is invalid and doesn't type check.
let arr = arr.downcast_ref::<NSArray<NSString>>();This fails to compile, since it would require enumerating over the array to ensure that each element is of the desired type, which is a performance pitfall.
Downcast when processing each element instead.
use objc2_foundation::{NSArray, NSObject, NSString};
let arr = NSArray::from_retained_slice(&[NSObject::new()]);
for elem in arr {
if let Some(data) = elem.downcast_ref::<NSString>() {
// handle `data`
}
}Trait Implementations§
Source§impl ClassType for ARFrame
impl ClassType for ARFrame
Source§const NAME: &'static str = "ARFrame"
const NAME: &'static str = "ARFrame"
Source§type ThreadKind = <<ARFrame as ClassType>::Super as ClassType>::ThreadKind
type ThreadKind = <<ARFrame as ClassType>::Super as ClassType>::ThreadKind
Source§impl CopyingHelper for ARFrame
Available on crate feature objc2-foundation only.
impl CopyingHelper for ARFrame
objc2-foundation only.Source§impl NSCopying for ARFrame
impl NSCopying for ARFrame
Source§impl NSObjectProtocol for ARFrame
impl NSObjectProtocol for ARFrame
Source§fn isEqual(&self, other: Option<&AnyObject>) -> bool
fn isEqual(&self, other: Option<&AnyObject>) -> bool
Source§fn hash(&self) -> usize
fn hash(&self) -> usize
Source§fn isKindOfClass(&self, cls: &AnyClass) -> bool
fn isKindOfClass(&self, cls: &AnyClass) -> bool
Source§fn is_kind_of<T>(&self) -> bool
fn is_kind_of<T>(&self) -> bool
isKindOfClass directly, or cast your objects with AnyObject::downcast_ref