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 _ROTATION_MATRIX_H
21 #define _ROTATION_MATRIX_H
24 #include "quaternion.h"
26 template <typename TYPE>
27 class rotation_matrix {
29 matrix<TYPE> m_rot_mat;
32 rotation_matrix(const matrix<TYPE> m);
33 rotation_matrix(const int rows, const int cols, TYPE *mat_data);
34 rotation_matrix(const rotation_matrix<TYPE>& rm);
37 rotation_matrix<TYPE> operator =(const rotation_matrix<TYPE>& rm);
39 template<typename T> friend rotation_matrix<T> quat2rot_mat(quaternion<T> q);
40 template<typename T> friend quaternion<T> rot_mat2quat(rotation_matrix<T> rm);
43 #include "rotation_matrix.cpp"
45 #endif /* _ROTATION_MATRIX_H */