1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
/*
* 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 "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);
}
|