38 #ifndef SBG_MATRIX_3_H
39 #define SBG_MATRIX_3_H
73 data_[0] =
static_cast<T
>(0.0);
74 data_[1] =
static_cast<T
>(0.0);
75 data_[2] =
static_cast<T
>(0.0);
76 data_[3] =
static_cast<T
>(0.0);
77 data_[4] =
static_cast<T
>(0.0);
78 data_[5] =
static_cast<T
>(0.0);
79 data_[6] =
static_cast<T
>(0.0);
80 data_[7] =
static_cast<T
>(0.0);
81 data_[8] =
static_cast<T
>(0.0);
97 SbgMatrix3(T value00, T value01, T value02, T value10, T value11, T value12, T value20, T value21, T value22)
118 assert(array_size == 9);
120 data_[0] = p_raw_data[0];
121 data_[1] = p_raw_data[1];
122 data_[2] = p_raw_data[2];
123 data_[3] = p_raw_data[3];
124 data_[4] = p_raw_data[4];
125 data_[5] = p_raw_data[5];
126 data_[6] = p_raw_data[6];
127 data_[7] = p_raw_data[7];
128 data_[8] = p_raw_data[8];
148 assert(i * 3 + j < 9);
150 return data_[i * 3 + j];
160 return static_cast<const T*
>(
data_.data());
197 float cr = cosf(euler(0));
198 float sr = sinf(euler(0));
199 float cp = cosf(euler(1));
200 float sp = sinf(euler(1));
201 float cy = cosf(euler(2));
202 float sy = sinf(euler(2));
208 data_[1] = (sr * sp * cy) - (cr * sy);
209 data_[4] = (sr * sp * sy) + (cr * cy);
212 data_[2] = (cr * sp * cy) + (sy * sr);
213 data_[5] = (cr * sp * sy) - (sr * cy);
226 void makeDcm(
float w,
float x,
float y,
float z)
235 data_[0] = (2 * powf(w, 2)) + (2 * powf(x, 2)) - 1;
236 data_[3] = (2 * xy) + (2 * wz);
237 data_[6] = (2 * xz) - (2 * wy);
239 data_[1] = (2 * xy) - (2 * wz);
240 data_[4] = (2 * powf(w, 2)) + (2 * powf(y, 2)) - 1;
241 data_[7] = (2 * yz) + (2 * wx);
243 data_[2] = (2 * wy) + (2 * xz);
244 data_[5] = (2 * yz) - (2 * wx);
245 data_[8] = (2 * powf(w, 2)) + (2 * powf(z, 2)) - 1;
256 #endif // SBG_MATRIX_3_H