4 * Copyright (c) 2014 Samsung Electronics Co., Ltd.
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
20 #ifndef _SENSOR_DATA_H_
21 #define _SENSOR_DATA_H_
24 #include "quaternion.h"
26 #define SENSOR_DATA_SIZE 3
28 template <typename TYPE>
31 vect<TYPE, SENSOR_DATA_SIZE> m_data;
32 unsigned long long m_time_stamp;
35 sensor_data(const TYPE x, const TYPE y, const TYPE z,
36 const unsigned long long time_stamp);
37 sensor_data(const vect<TYPE, SENSOR_DATA_SIZE> v,
38 const unsigned long long time_stamp);
39 sensor_data(const sensor_data<TYPE>& s);
42 sensor_data<TYPE> operator =(const sensor_data<TYPE>& s);
44 template<typename T> friend sensor_data<T> operator +(sensor_data<T> data1,
45 sensor_data<T> data2);
47 template<typename T> friend void normalize(sensor_data<T>& data);
48 template<typename T> friend sensor_data<T> scale_data(sensor_data<T> data,
50 template<typename T> friend quaternion<T> sensor_data2quat(const sensor_data<T> data,
51 const vect<T, REF_VEC_SIZE> ref_vec);
52 template<typename T> friend void pre_process_data(sensor_data<T> &data_out,
53 const T *data_in, T *bias, int *sign, int scale);
57 #include "sensor_data.cpp"
59 #endif /* _SENSOR_DATA_H_ */