All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
Loading...
Searching...
No Matches
ExternalPositionalDeviceTracker Class Referenceabstract

Public Member Functions

virtual bool VUFORIA_DRIVER_CALLING_CONVENTION open ()=0
 Open the external positional device tracker.
 
virtual bool VUFORIA_DRIVER_CALLING_CONVENTION close ()=0
 Close the external positional device tracker.
 
virtual bool VUFORIA_DRIVER_CALLING_CONVENTION start (PoseCallback *cb, AnchorCallback *anchorCb=nullptr)=0
 Start the external positional device tracker.
 
virtual bool VUFORIA_DRIVER_CALLING_CONVENTION stop ()=0
 Stop the external positional device tracker.
 
virtual bool VUFORIA_DRIVER_CALLING_CONVENTION resetTracking ()=0
 Notify external positional device tracker to reset tracking the world/pose.
 
virtual bool VUFORIA_DRIVER_CALLING_CONVENTION isAnchorSupported ()
 Query the driver to check if it supports anchors.
 
virtual const char *VUFORIA_DRIVER_CALLING_CONVENTION createAnchor (AnchorPose *anchorPose)
 Create an anchor with the given pose.
 
virtual bool VUFORIA_DRIVER_CALLING_CONVENTION removeAnchor (const char *uuid)
 Remove the Anchor for the given UUID.
 
virtual bool VUFORIA_DRIVER_CALLING_CONVENTION providesFusionParameterValue (PoseFusionParameter poseFusionParam)
 Query the Driver whether it provides a value for the specified PoseFusionParameter.
 
virtual int32_t VUFORIA_DRIVER_CALLING_CONVENTION getFusionParameterValue (PoseFusionParameter poseFusionParam)
 Get the value for the specified PoseFusionParameter.
 

Detailed Description

Interface used by Vuforia to interact with the external positional device tracker implementation.

Note
The sequence of events between Vuforia and the external positional device tracker implementation is as follows:
  1. Vuforia calls VuforiaDriver::createExternalPositionalDeviceTracker() when the driver capability includes CAMERA_POSE.
  2. The implementation creates an ExternalPositionalDeviceTracker instance and returns it to Vuforia.
  3. Vuforia calls ExternalPositionalDeviceTracker::open() on the returned instance.
  4. Vuforia calls ExternalPositionalDeviceTracker::start(), which starts the flow of poses into the provided PoseCallback.
  5. On shutdown Vuforia calls -> ExternalPositionalDeviceTracker::stop() -> ExternalPositionalDeviceTracker::close() -> and finally VuforiaDriver::destroyExternalPositionalDeviceTracker().

Member Function Documentation

◆ open()

virtual bool VUFORIA_DRIVER_CALLING_CONVENTION open ( )
pure virtual

Open the external positional device tracker.

Returns
True if the external positional device tracker is opened successfully, false otherwise

◆ close()

virtual bool VUFORIA_DRIVER_CALLING_CONVENTION close ( )
pure virtual

Close the external positional device tracker.

Returns
True if the external positional device tracker is closed successfully, false otherwise

◆ start()

virtual bool VUFORIA_DRIVER_CALLING_CONVENTION start ( PoseCallback * cb,
AnchorCallback * anchorCb = nullptr )
pure virtual

Start the external positional device tracker.

Parameters
cbCallback that the pose should be delivered to
anchorCbAnchor callback to be notified when anchors are updated
Returns
True if the external positional device tracker was started, false otherwise.

◆ stop()

virtual bool VUFORIA_DRIVER_CALLING_CONVENTION stop ( )
pure virtual

Stop the external positional device tracker.

Returns
True if the external positional device tracker was stopped, false otherwise. Once the stop returns true, driver implementation should stop pushing additional poses via PoseCallback. PoseCallback should be considered as invalid once stop returns true.

◆ resetTracking()

virtual bool VUFORIA_DRIVER_CALLING_CONVENTION resetTracking ( )
pure virtual

Notify external positional device tracker to reset tracking the world/pose.

Returns
True if the external positional device tracker is successful in resetting tracking, false otherwise

◆ isAnchorSupported()

virtual bool VUFORIA_DRIVER_CALLING_CONVENTION isAnchorSupported ( )
inlinevirtual

Query the driver to check if it supports anchors.

Note
Anchor support is an optional feature, therefore the default implementation returns false
Returns
True if the anchors are supported, false otherwise

◆ createAnchor()

virtual const char *VUFORIA_DRIVER_CALLING_CONVENTION createAnchor ( AnchorPose * anchorPose)
inlinevirtual

Create an anchor with the given pose.

Parameters
anchorPosePose to create an anchor with
Note
Anchor support is an optional feature, therefore the default implementation returns nullptr
Returns
UUID (char*) if anchor was successfully created

◆ removeAnchor()

virtual bool VUFORIA_DRIVER_CALLING_CONVENTION removeAnchor ( const char * uuid)
inlinevirtual

Remove the Anchor for the given UUID.

Parameters
uuidUUID of the anchor to be removed. This UUID was obtained via successful call to createAnchor
Note
Anchor support is an optional feature, therefore the default implementation returns false
Returns
True if Anchor was successfully removed, false otherwise

◆ providesFusionParameterValue()

virtual bool VUFORIA_DRIVER_CALLING_CONVENTION providesFusionParameterValue ( PoseFusionParameter poseFusionParam)
inlinevirtual

Query the Driver whether it provides a value for the specified PoseFusionParameter.

Parameters
poseFusionParamOne of the values from the PoseFusionParameter enum.
Returns
True if the Driver provides a value for the requested PoseFusionParameter, false otherwise

◆ getFusionParameterValue()

virtual int32_t VUFORIA_DRIVER_CALLING_CONVENTION getFusionParameterValue ( PoseFusionParameter poseFusionParam)
inlinevirtual

Get the value for the specified PoseFusionParameter.

Parameters
poseFusionParamOne of the values from the PoseFusionParameter enum
Returns
The value that Vuforia Engine should use with this Vuforia Driver