KudanAR - iOS  1.6.0
ARImageTrackerManager Class Reference

#import <ARImageTrackerManager.h>

Inherits NSObject.

Instance Methods

(void) - initialise
 
(void) - deinitialise
 
(BOOL) - addTrackable:
 
(void) - removeTrackable:
 
(void) - addTrackableSet:
 
(ARImageTrackable *) - findTrackableByName:
 
(void) - process:width:height:padding:
 
(void) - start
 
(void) - stop
 
(void) - setMaximumSimultaneousTracking:
 
(void) - setRecoveryMode:
 
(BOOL) - queryRecoveryMode
 
(void) - prohibitRecoveryMode
 
(BOOL) - queryRecoveryMode:
 
(void) - toggleParallelDetection:
 
(BOOL) - isDetectorParallel
 

Class Methods

(ARImageTrackerManager *) + getInstance
 

Properties

ARNodebaseNode
 
BOOL isInitialised
 
NSArray * trackables
 
int numberOfDetectedTrackables
 
NSArray * detectedTrackables
 

Detailed Description

Manager singleton for the image tracker. The image tracker is capable of detecting pre-registered 2D images within the camera stream.

Method Documentation

◆ addTrackable:

- (BOOL) addTrackable: (ARImageTrackable *)  trackable

Add a trackable to the image tracker so that it may be detected. The trackable's name must be unique compared to the currently added trackables.

Example of use:

ARImageTrackable *trackable = [[ARImageTrackable alloc] initWithImage:[UIImage imageNamed:@"example.jpg"] name:"Example Marker"];
[[ARImageTrackerManager getInstance] addTrackable:trackable];
Parameters
trackableThe trackable to add.
Returns
YES if the marker was successfully created and added to the tracker, NO otherwise.

◆ addTrackableSet:

- (void) addTrackableSet: (ARImageTrackableSet *)  set

Add a set of trackables to the image tracker so they may be detected.

Example of use:

ARImageTrackableSet *trackableSet = [[ARImageTrackableSet alloc] initWithBundledFile:@"example.KARMarker"];
[[ARImageTrackerManager getInstance] addTrackableSet:trackableSet];
Parameters
setThe set of trackables to add. This must be in the .KARMarker format.

◆ deinitialise

- (void) deinitialise

Deinitialise the Image Tracker. This method should only be called once during cleanup, ideally when the AR View Controller is being dismissed. When the Image Tracker is denitialised, it performs the following: The native ImageTracker interface is deinitialised. The array of trackables is emptied. The array of detected trackables is emptied, meaning any markers currently being detected will be lost, and any nodes that are currently visible will stop being rendered. The base node is reset with a new ARNode.

Example of use:

◆ findTrackableByName:

- (ARImageTrackable *) findTrackableByName: (NSString *)  name

Find a trackable registered with the tracker by its name.

Example of use:

ARImageTrackable *trackable = [[ARImageTrackerManager getInstance] imageTracker findTrackableByName:@"example"];
Parameters
nameThe name of the trackable to find.
Returns
The matching trackable, or nil if not found.

◆ getInstance

+ (ARImageTrackerManager *) getInstance

Get the Image Tracker singleton.

Example of use:

Returns
The ImageTracker singleton.

◆ initialise

- (void) initialise

Initialise the Image Tracker. This method should only be called once during setup. When the Image Tracker is initialised, it performs the following: A new ARNode is created to become the tracker's base node. An empty array of trackables is created. A reference to the native ImageTracker interface is made and the the interface is initialised.

Example of use:

◆ isDetectorParallel

- (BOOL) isDetectorParallel

Query whether marker detection is parallelised (for simultaneous detection of multiple trackables) or not.

Example of use:

Returns
Boolean indicating whether detection can run in parallel or not.

◆ process:width:height:padding:

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

Passes Camera data to KudanCV for processing. This is called everyframe.

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

◆ prohibitRecoveryMode

- (void) prohibitRecoveryMode

Prohibit recovery mode for all trackables (ignoring the global setting).

Example of use:

◆ queryRecoveryMode

- (BOOL) queryRecoveryMode

Query whether recovery mode is on, for all trackables in general. This could be overridden for individual trackables.

Example of use:

Returns
Whether recovery mode is used (YES) or not (NO).

◆ queryRecoveryMode:

- (BOOL) queryRecoveryMode: (ARImageTrackable *)  trackable

For an individual trackable, query whether it is able to use recovery mode (depends on the global setting and the trackable's own setting).

Example of use:

ARImageTrackable *trackable = [[ARImageTrackable alloc] initWithImage:[UIImage imageNamed:@"example.jpg"] name:@"Example Marker"];
[imageTracker setRecoveryMode:NO];
[trackable forceRecoveryMode];
BOOL globalRecoveryEnabled = [imageTracker queryRecoveryMode];
BOOL exampleMarkerRecoveryEnabled = [imageTracker queryRecoveryMode:trackable];

globalRecoveryEnabled will return NO. exampleMarkerRecoveryEnabled will return YES.

Parameters
trackableThe trackable for which recovery mode is being queried.
Returns
Whether recovery mode is used (YES) or not (NO) for this one trackable.

◆ removeTrackable:

- (void) removeTrackable: (ARImageTrackable *)  trackable

Remove a trackable from the image tracker. This trackable will no longer be detected.

Example of use:

[[ARImageTrackerManager getInstance] removeTrackable:trackable];
Parameters
trackableThe trackable to remove.

◆ setMaximumSimultaneousTracking:

- (void) setMaximumSimultaneousTracking: (int)  maxToTrack

Set the maximum number of trackables which can be tracked at the same time. If the maximum number of markers is already being tracked, further markers will not be detected. This does not affect the number of trackables which can be loaded at the same time. Set to a value of 0 for an unlimited number of concurrent tracked markers. This is the default value.

NOTE: Tracking multiple trackables at the same time is quite processor intensive and can cause fps drops.

Example of use:

[[ARImageTrackerManager getInstance] setMaximumSimultaneousTracking:3];
Parameters
maxToTrackThe maximum number of trackables which can be tracked simultaneously.

◆ setRecoveryMode:

- (void) setRecoveryMode: (BOOL)  doRecovery

Set whether recovery mode is enabled, for all trackables. This can be overridden on a per-trackable basis by using the force- and prohibit- functions of KudanImageTrackable.

Example of use:

[[ARImageTrackerManager getInstance] setRecoveryMode:YES];
Parameters
doRecoveryWhether recovery mode is used (YES) or not (NO).

◆ start

- (void) start

Start the Image Tracker. The Image Tracker must have first been initialised before starting, or it will not work.

Example of use:

◆ stop

- (void) stop

Stop the Image Tracker. Any visible objects on-screen will stop rendering at this time.

Example of use:

◆ toggleParallelDetection:

- (void) toggleParallelDetection: (bool)  isParallel

Set whether marker detection is parallelised (for simultaneous detection of multiple trackables) or not. The number of threads is not controllable but set automatically for the device.

Example of use:

[[ARImageTrackerManager getInstance] toggleParallelDetection:YES];
Parameters
isParallelSet whether detection can run in parallel (YES) or not (NO).

Property Documentation

◆ baseNode

- (ARNode*) baseNode
readwritenonatomicassign

This node is the parent of all trackable worlds. It can be used to toggle visibility of all markers or as a touch target to receive touches on any marker.

◆ detectedTrackables

- (NSArray *) detectedTrackables
readatomicassign

The array of detected ARImageTrackable objects from the last processed frame.

◆ isInitialised

- (BOOL) isInitialised
readwritenonatomicassign

Whether the tracker is initialised or not.

◆ numberOfDetectedTrackables

- (int) numberOfDetectedTrackables
readatomicassign

The number of trackables detected in the last processed frame.

◆ trackables

- (NSArray*) trackables
readatomicassign

The array of all registered trackables.


The documentation for this class was generated from the following files:
-[ARImageTrackerManager deinitialise]
void deinitialise()
Definition: ARImageTrackerManager.mm:76
-[ARImageTrackerManager isDetectorParallel]
BOOL isDetectorParallel()
Definition: ARImageTrackerManager.mm:231
ARImageTrackable
Definition: ARImageTrackable.h:12
ARImageTrackerManager
Definition: ARImageTrackerManager.h:11
-[ARImageTrackerManager start]
void start()
Definition: ARImageTrackerManager.mm:187
-[ARImageTrackerManager initialise]
void initialise()
Definition: ARImageTrackerManager.mm:62
-[ARImageTrackerManager stop]
void stop()
Definition: ARImageTrackerManager.mm:192
+[ARImageTrackerManager getInstance]
ARImageTrackerManager * getInstance()
Definition: ARImageTrackerManager.mm:48
ARImageTrackableSet
Definition: ARImageTrackableSet.h:7
-[ARImageTrackerManager queryRecoveryMode]
BOOL queryRecoveryMode()
Definition: ARImageTrackerManager.mm:208
-[ARImageTrackerManager prohibitRecoveryMode]
void prohibitRecoveryMode()
Definition: ARImageTrackerManager.mm:213