8 #ifndef META_OCEAN_DEVICES_ARKIT_AK_SCENE_TRACKER_6_DOF_H
9 #define META_OCEAN_DEVICES_ARKIT_AK_SCENE_TRACKER_6_DOF_H
56 inline size_t operator()(
const ARMeshAnchor* anchor)
const;
125 void onUpdateAnchors(const
ARAnchors& anchors) override;
131 static inline std::
string deviceNameAKSceneTracker6DOF();
137 static inline
DeviceType deviceTypeAKSceneTracker6DOF();
157 API_AVAILABLE(ios(13.4))
158 static
bool extractVectors3(ARGeometrySource* geometrySource,
Vectors3& vectors);
166 API_AVAILABLE(ios(13.4))
167 static
bool extractIndices(ARGeometryElement* geometryElement,
Indices32& indices);
175 bool isStarted_ = false;
178 bool worldIsTracked_ = false;
184 unsigned int meshIdCounter_ = 0u;
197 return std::string(
"ARKit 6DOF Scene Tracker");
202 return DeviceType(deviceTypeTracker6DOF(), TRACKER_VISUAL | SCENE_TRACKER_6DOF);
This class implements a device for the ARKit library.
Definition: AKDevice.h:48
std::vector< ARAnchor * > ARAnchors
Definition of a vector holding ARAnchors.
Definition: AKDevice.h:75
This class implements a device factory for the ARKit tracking library.
Definition: AKFactory.h:32
This class implements the 6DOF scene tracker.
Definition: AKSceneTracker6DOF.h:36
std::unordered_set< ARMeshAnchor *, ARMeshAnchorHash > ARMeshAnchorSet
Definition of an unordered set holding ARMeshAnchor objects.
Definition: AKSceneTracker6DOF.h:62
bool start() override
Starts the device.
std::unordered_map< std::string, Index32 > IdentifierMap
Definition of an unordered map mapping anchor identifier strings to unique ids.
Definition: AKSceneTracker6DOF.h:44
bool pause() override
Pauses the device.
bool stop() override
Stops the device.
static DeviceType deviceTypeAKSceneTracker6DOF()
Returns the device type of this tracker.
Definition: AKSceneTracker6DOF.h:200
API_AVAILABLE(ios(11.3)) void onNewSample(const HomogenousMatrix4 &world_T_camera
Event function for a new 6DOF pose.
void setInput(Media::FrameMediumRefs &&frameMediums) override
Sets the multi-view visual input of this tracker.
static std::string deviceNameAKSceneTracker6DOF()
Returns the name of this tracker.
Definition: AKSceneTracker6DOF.h:195
bool isObjectTracked(const ObjectId &objectId) const override
Returns whether a specific object is currently actively tracked by this tracker.
Definition of a class holding the major and minor device type.
Definition: devices/Device.h:62
unsigned int ObjectId
Definition of an object id.
Definition: Measurement.h:46
std::unordered_map< std::string, Value > Metadata
Definition of an unordered map mapping keys to values.
Definition: Measurement.h:61
This class implements the base for all 6-DOF scene trackers.
Definition: SceneTracker6DOF.h:42
std::vector< SharedSceneElement > SharedSceneElements
Definition of a vector holding scene elements.
Definition: SceneTracker6DOF.h:901
This class is the base class for all tracker using visual input to create the tracking results.
Definition: devices/VisualTracker.h:41
static std::string toUTF8(NSString *object)
Converts a given NSString object to a string with UTF8 encoding.
This class implements a timestamp.
Definition: Timestamp.h:36
std::vector< Index32 > Indices32
Definition of a vector holding 32 bit index values.
Definition: Base.h:96
std::vector< Vector3 > Vectors3
Definition of a vector holding Vector3 objects.
Definition: Vector3.h:65
const ObjectId invalidObjectId
Definition of an invalid object id.
Definition: rendering/Rendering.h:65
The namespace covering the entire Ocean framework.
Definition: Accessor.h:15
Helper class implementing a hash function for ARMeshAnchor.
Definition: AKSceneTracker6DOF.h:50