Object Tracker
The Object Tracker loads the map file and renders 3D object on it.
Create Instants
Starting / Stopping the Tracker
Using the Tracking Information
Setting a Map
Adding / Replacing a Map
Create Instants
>ObjectTrackerViewController.mm
- (void)viewDidLoad { ... trackingManager = [[MasTrackerManager alloc] init]; cameraDevice = [[MasCameraDevice alloc] init]; backgroundRenderer = [[MasBackgroundRenderer alloc] init]; [MasMaxstAR onSurfaceCreated]; }
Starting / Stopping the Tracker
To start / stop Tracker after loading the map, refer to the following code.
>ObjectTrackerViewController.mm
- (void)resumeAR { ... [trackingManager startTracker:TRACKER_TYPE_OBJECT]; } - (void)pauseAR { [trackingManager stopTracker]; ... }
Using the Tracking Information
To use the Tracking information, refer to the following code.
>ObjectTrackerViewController.mm
- (void)glkView:(GLKView *)view drawInRect:(CGRect)rect { ... MasTrackingState *trackingState = [trackingManager updateTrackingState]; MasTrackingResult *result = [trackingState getTrackingResult]; MasBackgroundTexture *backgroundTexture = [backgroundRenderer getBackgroundTexture]; [backgroundRenderer begin:backgroundTexture]; [backgroundRenderer renderBackgroundToTexture]; [backgroundRenderer end]; [backgroundQuad draw:backgroundTexture projectionMatrix:[cameraDevice getBackgroundPlaneProjectionMatrix]]; glEnable(GL_DEPTH_TEST); matrix_float4x4 projectionMatrix = [cameraDevice getProjectionMatrix]; for (int i = 0; i < [result getCount]; i++) { MasTrackable *trackable = [result getTrackable:i]; [texturedCube setProjectionMatrix:projectionMatrix]; [texturedCube setPoseMatrix:[trackable getPose]]; [texturedCube setTranslation:0.0f y:0.0f z:-0.0005f]; [texturedCube setScale:0.4f y:0.4f z:0.001f]; [texturedCube draw]; } ... }
Setting a Map
By calling function addTrackerData to register the map file and calling function loadTrackerData, Space can be tracked. To set a map, refer to the following code.
>ObjectTrackerViewController.mm
- (void)startEngine { ... [trackingManager addTrackerData:objectTrackerMapPath]; [trackingManager loadTrackerData]; }
Adding / Replacing a Map
Create a map file refer to Documentation > Map Manager.
Copy the received map file to the desired path.
If you have an existing map file, call function 'addTrackerData' and function 'loadTrackerData' after calling [trackingManager removeTrackerData]