OLD | NEW |
---|---|
(Empty) | |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 package org.chromium.content.browser.input; | |
6 | |
7 import android.content.Context; | |
8 | |
9 import com.google.vrtoolkit.cardboard.CardboardDeviceParams; | |
10 import com.google.vrtoolkit.cardboard.FieldOfView; | |
11 import com.google.vrtoolkit.cardboard.HeadMountedDisplay; | |
12 import com.google.vrtoolkit.cardboard.HeadMountedDisplayManager; | |
13 import com.google.vrtoolkit.cardboard.ScreenParams; | |
14 import com.google.vrtoolkit.cardboard.sensors.HeadTracker; | |
mdempsky
2015/05/11 22:11:09
This appears to be a (publicly) undocumented part
| |
15 | |
16 import org.chromium.base.CalledByNative; | |
17 import org.chromium.base.JNINamespace; | |
18 | |
19 /** | |
20 * This is the implementation of the C++ counterpart CardboardVRDevice. | |
21 */ | |
22 @JNINamespace("content") | |
23 class CardboardVRDevice { | |
24 private static final String TAG = "CardboardVRDevice"; | |
25 private final HeadMountedDisplayManager mHMDManager; | |
mdempsky
2015/05/11 22:11:09
According to the documentation and examples I can
| |
26 private final HeadTracker mHeadTracker; | |
27 | |
28 @CalledByNative | |
29 private static CardboardVRDevice create(Context context) { | |
30 return new CardboardVRDevice(context); | |
31 } | |
32 | |
33 private CardboardVRDevice(Context context) { | |
34 mHMDManager = new HeadMountedDisplayManager(context); | |
35 | |
36 mHeadTracker = HeadTracker.createFromContext(context); | |
37 mHeadTracker.setNeckModelEnabled(true); | |
38 mHeadTracker.startTracking(); | |
39 } | |
40 | |
41 @CalledByNative | |
42 private void getFieldOfView(float[] outFov) { | |
43 HeadMountedDisplay hmd = mHMDManager.getHeadMountedDisplay(); | |
44 CardboardDeviceParams deviceParams = hmd.getCardboardDeviceParams(); | |
45 FieldOfView fov = deviceParams.getLeftEyeMaxFov(); | |
46 outFov[0] = fov.getTop(); | |
47 outFov[1] = fov.getBottom(); | |
48 outFov[2] = fov.getLeft(); | |
49 outFov[3] = fov.getRight(); | |
50 } | |
51 | |
52 @CalledByNative | |
53 private float getIpd() { | |
54 HeadMountedDisplay hmd = mHMDManager.getHeadMountedDisplay(); | |
55 CardboardDeviceParams deviceParams = hmd.getCardboardDeviceParams(); | |
56 return deviceParams.getInterLensDistance(); | |
57 } | |
58 | |
59 @CalledByNative | |
60 private String getDeviceName() { | |
61 HeadMountedDisplay hmd = mHMDManager.getHeadMountedDisplay(); | |
62 CardboardDeviceParams deviceParams = hmd.getCardboardDeviceParams(); | |
63 return deviceParams.getVendor() + " " + deviceParams.getModel(); | |
64 } | |
65 | |
66 @CalledByNative | |
67 private void getScreenSize(int[] outSize) { | |
68 HeadMountedDisplay hmd = mHMDManager.getHeadMountedDisplay(); | |
69 ScreenParams screenParams = hmd.getScreenParams(); | |
70 outSize[0] = screenParams.getWidth(); | |
71 outSize[1] = screenParams.getHeight(); | |
72 } | |
73 | |
74 @CalledByNative | |
75 private void getSensorState(float[] outMatrix) { | |
76 mHeadTracker.getLastHeadView(outMatrix, 0); | |
77 } | |
78 | |
79 @CalledByNative | |
80 private void stopTracking() { | |
81 mHeadTracker.stopTracking(); | |
82 } | |
83 | |
84 @CalledByNative | |
85 private void resetSensor() { | |
86 mHeadTracker.resetTracker(); | |
87 } | |
88 } | |
OLD | NEW |