MaxstARSDK  3.5.0
MasTrackerManager.mm
1 //
2 // MasTrackerManager.m
3 // MaxstAR
4 //
5 // Created by Kimseunglee on 2017. 12. 7..
6 // Copyright © 2017년 Maxst. All rights reserved.
7 //
8 
9 #import "MasTrackerManager.h"
10 #include "TrackerManager.h"
11 #include "ITrackingResult.h"
12 #include "TrackingState.h"
13 #include "SurfaceThumbnail.h"
14 
15 @interface MasTrackerManager()
16 {
17  maxstAR::TrackerManager *trackerManager;
18 }
19 
20 @end
21 
22 @implementation MasTrackerManager
23 
24 - (instancetype)init {
25  self = [super init];
26  if (self) {
27  trackerManager = maxstAR::TrackerManager::getInstance();
28  }
29  return self;
30 }
31 
32 - (void) startTracker:(TrackerType)trackerMask {
33  trackerManager->startTracker(trackerMask);
34 }
35 
36 - (void) stopTracker {
37  trackerManager->stopTracker();
38 }
39 
40 - (void) destroyTracker {
41  trackerManager->destroyTracker();
42 }
43 
44 - (void) addTrackerData:(NSString*)trackingFileName {
45  trackerManager->addTrackerData([trackingFileName UTF8String]);
46 }
47 
48 - (void) removeTrackerData:(NSString*)trackingFileName {
49  trackerManager->removeTrackerData([trackingFileName UTF8String]);
50 }
51 
52 - (void) loadTrackerData {
53  trackerManager->loadTrackerData();
54 }
55 
57  return trackerManager->isTrackerDataLoadCompleted();
58 }
59 
61  maxstAR::TrackingState *trackingState = trackerManager->updateTrackingState();
62 
63  if(trackingState == nil)
64  {
65  return nil;
66  }
67 
68  MasTrackingState *masTrackingState = [[MasTrackingState alloc] init:trackingState];
69  return masTrackingState;
70 }
71 
72 - (void) findSurface {
73  trackerManager->findSurface();
74 }
75 
77  trackerManager->quitFindingSurface();
78 }
79 
80 - (MasSurfaceThumbnail*) saveSurfaceData:(NSString*)outputFileName {
81  std::string outputString = std::string([outputFileName UTF8String]);
82  maxstAR::SurfaceThumbnail *surfaceThumbnail = trackerManager->saveSurfaceData(outputString);
83 
84  if(surfaceThumbnail == nil)
85  {
86  return nil;
87  }
88 
89  MasSurfaceThumbnail *masSurfaceThumbnail = [[MasSurfaceThumbnail alloc] init:surfaceThumbnail];
90 
91  return masSurfaceThumbnail;
92 }
93 
94 - (void) getWorldPositionFromScreenCoordinate:(float*)screen world:(float*)world {
95  trackerManager->getWorldPositionFromScreenCoordinate(screen, world);
96 }
97 
99  return trackerManager->getKeyframeCount();
100 }
101 
103  maxstAR::GuideInfo *guideInfo = trackerManager->getGuideInfo();
104 
105  if(guideInfo == nil)
106  {
107  return nil;
108  }
109 
110  MasGuideInfo *masGuideInfo = [[MasGuideInfo alloc] init:guideInfo];
111 
112  return masGuideInfo;
113 }
114 
115 - (void) setTrackingOption:(TrackingOption)option {
116  trackerManager->setTrackingOption(option);
117 }
118 
119 - (void) saveFrames {
120  trackerManager->saveFrames();
121 }
122 
123 @end
void findSurface()
Start to find the surface of an environment from a camera image.
void quitFindingSurface()
Stop to find the surface.
MasTrackingState * updateTrackingState()
int getKeyframeCount()
Get the number of keyframes included in surface data.
bool isTrackerDataLoadCompleted()
Get map files loading state. This is for UI expression.
void loadTrackerData()
Load map files in candidate list to memory. This method don't block main(UI) thread.
MasGuideInfo * getGuideInfo()
Get surface mesh information of the found surface after the findSurface method has been called...
void destroyTracker()
Remove all tracking data (Map data and tracking result)
Tracking state container.
void stopTracker()
Stop tracking engine.
Control AR Engine.
Contains surface thumbnail image information of first keyframe.