1#ifndef ANDROID_DVR_TYPES_H_
2#define ANDROID_DVR_TYPES_H_
3
4// All basic types used by VR code.
5
6#include <private/dvr/eigen.h>
7#include <private/dvr/field_of_view.h>
8#include <private/dvr/pose.h>
9#include <private/dvr/range.h>
10
11namespace android {
12namespace dvr {
13
14enum RgbColorChannel { kRed, kGreen, kBlue };
15
16// EyeType: 0 for left, 1 for right.
17enum EyeType { kLeftEye = 0, kRightEye = 1 };
18
19// In the context of VR, vector types are used as much as base types.
20
21using vec2f = Eigen::Vector2f;
22using vec2d = Eigen::Vector2d;
23using vec2i = Eigen::Vector2i;
24using vec2 = vec2f;
25
26using vec3f = Eigen::Vector3f;
27using vec3d = Eigen::Vector3d;
28using vec3i = Eigen::Vector3i;
29using vec3 = vec3f;
30
31using vec4f = Eigen::Vector4f;
32using vec4d = Eigen::Vector4d;
33using vec4i = Eigen::Vector4i;
34using vec4 = vec4f;
35
36using mat3f = Eigen::AffineMatrix<float, 3>;
37using mat3d = Eigen::AffineMatrix<double, 3>;
38using mat3 = mat3f;
39
40using mat4f = Eigen::AffineMatrix<float, 4>;
41using mat4d = Eigen::AffineMatrix<double, 4>;
42using mat4 = mat4f;
43
44using quatf = Eigen::Quaternionf;
45using quatd = Eigen::Quaterniond;
46using quat = quatf;
47
48}  // namespace dvr
49}  // namespace android
50
51#endif  // ANDROID_DVR_TYPES_H_
52