KudanAR - iOS  1.6.0
ARArbiTrackerManager Class Reference

#import <ARArbiTrackerManager.h>

Inherits NSObject, and <ARGyroManagerDelegate>.

Instance Methods

(void) - initialise
 
(void) - deinitialise
 
(void) - process:width:height:padding:
 
(void) - start
 
(void) - stop
 
(void) - addDelegate:
 
(void) - removeDelegate:
 
- Instance Methods inherited from <ARGyroManagerDelegate>
(void) - gyroStarted
 

Class Methods

(ARArbiTrackerManager *) + getInstance
 

Properties

ARNodetargetNode
 
ARNodeworld
 
BOOL isTracking
 
int minimumFeatureCount
 
BOOL isInitialised
 

Detailed Description

Manager singleton for The ArbiTracker. This tracker is used for markerless tracking. Add content to this tracker's world in order to track it without a marker.

For more information on how to set up the ArbiTracker, check out our ArbiTrack Basics wiki page at https://wiki.kudan.eu/ArbiTrack_Basics_iOS

Method Documentation

◆ addDelegate:

- (void) addDelegate: (id <ARArbiTrackerManagerDelegate >)  delegate

Add a delegate for rendering event notifications.

Example of use:

[[ARArbiTrackerManager getInstance] addDelegate:self];
Parameters
delegateThe delegate to add.

◆ deinitialise

- (void) deinitialise

Deinitialise the ArbiTracker. This method should only be called once during cleanup, ideally when the AR View Controller is being dismissed. When the ArbiTracker is deinitialised, it performs the following: The native ArbiTracker interface is deinitialised. The target node is emptied and assigned nil. The ArbiTracker's world is reset with a new ARNode.

Example of use:

◆ getInstance

+ (ARArbiTrackerManager *) getInstance

Gets the ArbiTracker singleton. The first time this is called, a new ARNode called "ArbiTrack" will be created to be the ArbiTracker's world.

Example of use:

Returns
The ArbiTracker singleton.

◆ initialise

- (void) initialise

Initialises both the ArbiTracker and the Gyro Manager. This method should only be called once during setup. When the ArbiTacker is initialised, it performs the following: A new ARNode is created to become the ArbiTracker's world. A reference to the native ArbiTracker interface is made and the the interface is initialised. An empty array of delegates is created. A reference to the Gyro Manager is made and it is initialised. The ArbiTracker is added as a delegate for the Gyro Manager. Note: This does NOT initialise the Gyro Place Manager, which is separate to the Gyro Manager. It must be initialised separately.

Example of use:

◆ process:width:height:padding:

- (void) process: (NSData *)  data
width: (int)  width
height: (int)  height
padding: (int)  padding 

Passes Camera data to KudanCV for processing. Called every frame the tracker is running.

Parameters
dataCamera data.
widthCamera width.
heightCamera height.
paddingCamera padding.

◆ removeDelegate:

- (void) removeDelegate: (id <ARArbiTrackerManagerDelegate >)  delegate

Remove a delegate for rendering event notifications.

Example of use:

[[ARArbiTrackerManager getInstance] removeDelegate:self];
Parameters
delegateThe delegate to remove.

◆ start

- (void) start

Start the ArbiTracker. The targetNode's transformation at this time is used to determine the initial pose of the tracker. The ArbiTracker must have first been initialised before starting, or it will not work.

Example of use:

◆ stop

- (void) stop

Stop the ArbiTracker. Any nodes being rendered will stop rendering at this time.

Example of use:

Property Documentation

◆ isInitialised

- (BOOL) isInitialised
readwritenonatomicassign

Whether or not the tracker has been initialised.

If YES, the tracker will process new frames. If NO, the tracker will not process new frames.

This is set automatically by the tracker.

◆ isTracking

- (BOOL) isTracking
readwritenonatomicassign

Whether or not the ArbiTracker is currently tracking.

If YES, the tracker will update each frame. If NO, the tracker will not update each frame.

This is set automatically by the tracker.

◆ minimumFeatureCount

- (int) minimumFeatureCount
readwritenonatomicassign

The absolute minimum number of feature points that need to be tracked in any given frame. If the number of tracked feature points drops below this threshold, tracking is automatically stopped. Ordinarily around 100 features are tracked in any given frame. Default value is 20.

Increasing this value ensures that only high-feature environments can be tracked. Decreasing this value forces tracking to continue in low-feature environments.

◆ targetNode

- (ARNode*) targetNode
readwritenonatomicassign

The node whose transformation will be used when the ArbiTracker is started. Position this to determine the initial transformation of the ArbiTracker's world when ArbiTrack begins, and to define the coordinate space. In order to move the targetNode in relation to the gyroscope, add it as a child of the Gyro Place Manager's world. It will then automatically change its position based on the orientation of the device. It can also be added to an ARImageTrackable's world for the purposes of starting ArbiTrack using an Image Trackable's position and orientation.

◆ world

- (ARNode*) world
readwritenonatomicassign

When the ArbiTracker is tracking, its world node's transformation is updated by the tracker each frame. Add content to this node in order to track it using ArbiTrack.


The documentation for this class was generated from the following files:
-[ARArbiTrackerManager stop]
void stop()
Definition: ARArbiTrackerManager.mm:148
+[ARArbiTrackerManager getInstance]
ARArbiTrackerManager * getInstance()
Definition: ARArbiTrackerManager.mm:38
-[ARArbiTrackerManager deinitialise]
void deinitialise()
Definition: ARArbiTrackerManager.mm:82
-[ARArbiTrackerManager start]
void start()
Definition: ARArbiTrackerManager.mm:134
-[ARArbiTrackerManager initialise]
void initialise()
Definition: ARArbiTrackerManager.mm:56
ARArbiTrackerManager
Definition: ARArbiTrackerManager.h:30