24 #include "testing/testing.h"
32 float unit_matrix[3][3];
39 EXPECT_FLOAT_EQ(0.0f, roll);
42 EXPECT_FLOAT_EQ(0.0f, roll);
45 EXPECT_FLOAT_EQ(0.0f, roll);
49 float vector[3] = {1.0f, 1.0f, 1.0f};
62 float rotation_matrix[3][3];
65 const float rot_around_x[3] = {1.234f, 0.0f, 0.0f};
69 const float unit_axis_x[3] = {1.0f, 0.0f, 0.0f};
75 const float unit_axis_y[3] = {0.0f, 1.0f, 0.0f};
81 const float unit_axis_z[3] = {0.0f, 0.0f, 1.0f};
87 const float between_x_and_y[3] = {1.0f, 1.0f, 0.0f};
95 float negative_y_axis[3][3];
97 negative_y_axis[0][0] = negative_y_axis[1][1] = -1.0f;
99 const float roll = 0.0f;
100 float roll_mat[3][3];
104 const float normalized_vector[3] = {0.0f, -1.0f, 0.0f};
106 EXPECT_M3_NEAR(roll_mat, negative_y_axis, FLT_EPSILON);
111 const float expected_roll_mat[3][3] = {{1.000000f, 0.000000f, 0.000000f},
112 {0.000000f, -0.999989986f, -0.000000f},
113 {0.000000f, 0.000000f, 1.000000f}};
115 const float normalized_vector[3] = {0.0f, -1.0f + 1e-5f, 0.0f};
117 EXPECT_M3_NEAR(roll_mat, expected_roll_mat, FLT_EPSILON);
126 const float expected_roll_mat[3][3] = {{0.000000f, -9.99999975e-06f, 1.000000f},
127 {9.99999975e-06f, -0.999999881f, 9.99999975e-06f},
128 {1.000000f, -9.99999975e-06, 0.000000f}};
129 const float normalized_vector[3] = {1
e-24, -0.999999881, 0};
131 EXPECT_M3_NEAR(roll_mat, expected_roll_mat, FLT_EPSILON);
137 const float expected_roll_mat[3][3] = {{0.000000f, -9.99999975e-06f, 1.000000f},
138 {9.99999975e-06f, -0.999999881f, 9.99999975e-06f},
139 {1.000000f, -9.99999975e-06f, 0.000000f}};
141 const float normalized_vector[3] = {1e-5f, -0.999999881f, 1e-5f};
143 EXPECT_M3_NEAR(roll_mat, expected_roll_mat, FLT_EPSILON);
148 const float expected_roll_mat[3][3] = {{0.788675129f, -0.577350259f, -0.211324856f},
149 {0.577350259f, 0.577350259f, 0.577350259f},
150 {-0.211324856f, -0.577350259f, 0.788675129f}};
152 const float vector[3] = {1.0f, 1.0f, 1.0f};
153 float normalized_vector[3];
156 EXPECT_M3_NEAR(roll_mat, expected_roll_mat, FLT_EPSILON);
void mat3_vec_to_roll(const float mat[3][3], const float vec[3], float *r_roll)
void vec_roll_to_mat3_normalized(const float nor[3], const float roll, float r_mat[3][3])
void unit_m3(float m[3][3])
void eul_to_mat3(float mat[3][3], const float eul[3])
MINLINE float normalize_v3(float r[3])
MINLINE float normalize_v3_v3(float r[3], const float a[3])
ATTR_WARN_UNUSED_RESULT const BMVert const BMEdge * e
TEST(mat3_vec_to_roll, UnitMatrix)
static const float FLOAT_EPSILON