Object Tracker

Visual SLAM에서 생성, 저장한 맵을 불러오고 해당 맵 위로 3D 콘텐츠를 띄워줍니다.

Tracker 시작 / 종료
Tracking 정보 이용
맵 설정
맵 추가 / 교체

Tracker 시작 / 종료

맵을 로딩한 후 Tracker를 시작 / 종료하려면 다음 코드를 참고하세요.

ObjectTrackerViewController.mm

- (void)resumeAR
{
    ...
    TrackerManager::getInstance()->startTracker(OBJECT_TRACKER);
}

- (void)pauseAR
{
    TrackerManager::getInstance()->stopTracker();
    ...
}

Tracking 정보 이용

Tracking 정보를 활용하려면 다음 코드를 참고하세요.

ObjectTrackerViewController.mm

- (void)glkView:(GLKView *)view drawInRect:(CGRect)rect
{
    ...
    maxstAR::ITrackingResult *result = &TrackerManager::getInstance()->getTrackingResult();
    
    for (int i = 0; i < (int)result->getCount(); i++)
    {
        maxstAR::ITrackable *trackable = result->getTrackable(i);
        
        gl_helper::Mat4 pose = trackable->getPose();
        pose = projectionMatrix * pose;
        
        texturedCube->setTransform(pose);
        texturedCube->setPosition(0.0f, 0.0f, -0.0005f);
        texturedCube->setScale(0.4f, 0.4f, 0.001f);
        texturedCube->draw();
    }
    ...
}

맵 설정

addTrackerData ()를 호출해서 맵 파일을 등록하고 loadTrackerData ()를 호출하면 공간을 Tracking 할 수 있는 상태가 됩니다. 맵 파일을 설정하는 방법은 다음 코드를 참고하세요.

ObjectTrackerViewController.mm

- (void)startEngine
{
    ...
    TrackerManager::getInstance()->addTrackerData(std::string([objectTrackerMapPath UTF8String]));
    TrackerManager::getInstance()->loadTrackerData();
}

맵 추가 / 교체

  1. Documentation > Map Manger를 참고하여 맵 파일을 생성합니다.

  2. 전송 받은 맵 파일을 원하는 경로에 복사합니다.

  3. 맵을 설정합니다.