Ocean
AKRoomPlanTracker6DOF_Objc.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) Meta Platforms, Inc. and affiliates.
3  *
4  * This source code is licensed under the MIT license found in the
5  * LICENSE file in the root directory of this source tree.
6  */
7 
8 #ifndef META_OCEAN_DEVICES_ARKIT_ROOMPLAN_SWIFT_AK_ROOM_PLAN_TRACKER_6_DOF_H
9 #define META_OCEAN_DEVICES_ARKIT_ROOMPLAN_SWIFT_AK_ROOM_PLAN_TRACKER_6_DOF_H
10 
12 
13 #include <ARKit/ARKit.h>
14 #include <Foundation/Foundation.h>
15 
16 NS_ASSUME_NONNULL_BEGIN
17 
18 // Forward declaration to avoid including C++ headers in this file.
20 
21 /**
22  * This class implements the Objc wrapper for the room plan tracker.
23  * @ingroup devicesarkit
24  */
26 
27 /**
28  * Returns whether the tracker is supported on this platform.
29  * @return True, if so
30  */
31 + (bool)isSupported;
32 
33 /**
34  * Starts the tracker.
35  * @param ownerContainer The owner's delegate of this tracker
36  * @return True, if succeeded
37  */
38 - (bool)start:(AKRoomPlanTracker6DOFOwnerContainer*)ownerContainer;
39 
40 /**
41  * Stopps the tracker.
42  * @return True, if succeeded
43  */
44 - (bool)stop;
45 
46 /**
47  * Event function for frame update events.
48  * @param session The sending session
49  * @param frame The updated frame
50  */
51 - (void)onSessionTest:(ARSession*)session didUpdateFrame:(ARFrame*)frame;
52 
53 /**
54  * Event function when the capture session has started.
55  */
57 
58 /**
59  * Event function for added room objects.
60  * @param planarRoomObjects The new planar objects
61  * @param volumetricRoomObjects The new volumetric objects
62  */
63 - (void)onCaptureSessionAdded:(NSArray<PlanarRoomObject*>*)planarRoomObjects andVolumetric:(NSArray<VolumetricRoomObject*>*)volumetricRoomObjects;
64 
65 /**
66  * Event function for removed room objects.
67  * @param planarRoomObjects The removed planar objects
68  * @param volumetricRoomObjects The removed volumetric objects
69  */
70 - (void)onCaptureSessionRemoved:(NSArray<PlanarRoomObject*>*)planarRoomObjects andVolumetric:(NSArray<VolumetricRoomObject*>*)volumetricRoomObjects;
71 
72 /**
73  * Event function for changed room objects.
74  * @param planarRoomObjects The changed planar objects
75  * @param volumetricRoomObjects The changed volumetric objects
76  */
77 - (void)onCaptureSessionChanged:(NSArray<PlanarRoomObject*>*)planarRoomObjects andVolumetric:(NSArray<VolumetricRoomObject*>*)volumetricRoomObjects;
78 
79 /**
80  * Event function for updated room objects.
81  * @param planarRoomObjects The updated planar objects
82  * @param volumetricRoomObjects The updated volumetric objects
83  */
84 - (void)onCaptureSessionUpdated:(NSArray<PlanarRoomObject*>*)planarRoomObjects andVolumetric:(NSArray<VolumetricRoomObject*>*)volumetricRoomObjects;
85 
86 /**
87  * Event function for instructions.
88  * @param instruction The instruction which can be used to improve the capture result
89  */
90 - (void)onCaptureSessionInstruction:(NSString*)instruction;
91 
92 /**
93  * Event function when the capture session has stopped.
94  */
96 
97 @end
98 
99 NS_ASSUME_NONNULL_END
100 
101 #endif // META_OCEAN_DEVICES_ARKIT_ROOMPLAN_SWIFT_AK_ROOM_PLAN_TRACKER_6_DOF_H
This class implements the Objc wrapper for the room plan tracker.
Definition: AKRoomPlanTracker6DOF_Objc.h:26
bool stop()
Stopps the tracker.
void onCaptureSessionStopped()
Event function when the capture session has stopped.
bool isSupported()
Returns whether the tracker is supported on this platform.
void onCaptureSessionStarted()
Event function when the capture session has started.
This interface/class implements a container for C++ data structures.
Definition: AKRoomPlanTracker6DOFOwnerContainer.h:26
Definition of a planar (2D) room object.
Definition: RoomElement.h:44
Definition of a volumetric (3D) room object.
Definition: RoomElement.h:51