blob: f773582aada3b87c5694871b394f0209ada362d5 [file] [log] [blame]
/*
* Copyright 2018 Google LLC
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#include <arcore_c_api.h>
#include "platform_tools/android/apps/arcore/src/main/cpp/SkArCamera.h"
#include "SkArUtil.h"
std::unique_ptr<SkArCamera> SkArCamera::Make(SkArSession* session, SkArFrame* frame) {
return std::unique_ptr<SkArCamera>(new SkArCamera(session, frame));
}
SkArCamera::~SkArCamera() {
ArCamera_release(fArCamera);
}
SkArCamera::SkArCamera(SkArSession* session, SkArFrame* frame) : fArCamera(nullptr) {
ArFrame_acquireCamera(session->getArSession(), frame->getArFrame(), &fArCamera);
}
void SkArCamera::getViewMatrix(const SkArSession* session, float outColMajor[16]) {
ArCamera_getViewMatrix(session->getArSession(), fArCamera, outColMajor);
}
void SkArCamera::getProjectionMatrix(const SkArSession* session, float nearClip,
float farClip, float outColMajor[16]) {
ArCamera_getProjectionMatrix(session->getArSession(), fArCamera, nearClip, farClip,
outColMajor);
}
SkArTrackingState SkArCamera::getTrackingState(const SkArSession* session) {
ArTrackingState arTrackingState;
ArCamera_getTrackingState(session->getArSession(), fArCamera, &arTrackingState);
return SkArUtil::MakeSkArTrackingState(arTrackingState);
}