222TEST(math_matrix_types, MatrixMultiplyOperator)
307TEST(math_matrix_types, ViewFromCstyleMatrix)
309 float c_style_mat[4][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}, {13, 14, 15, 16}};
314 float4x4 expect =
float4x4({2, 4, 6, 8}, {10, 12, 14, 16}, {18, 20, 22, 24}, {26, 28, 30, 32});
317 EXPECT_M4_NEAR(expect, mat, 1e-8f);
320 EXPECT_M4_NEAR(expect, c_mat_mutable_view, 1e-8f);
323TEST(math_matrix_types, ViewAssignment)
326 float4(1, 2, 3, 4),
float4(5, 6, 7, 8),
float4(9, 10, 11, 12),
float4(13, 14, 15, 16));
330 float4x4 expect =
float4x4({1, 2, 3, 4}, {5, -1, -2, 8}, {9, -3, -4, 12}, {13, 14, 15, 16});
331 EXPECT_M4_NEAR(expect, mat, 1e-8f);
334 mat.
view<2, 2, 2, 2>() = mat.
view<2, 2, 0, 0>();
335 float4x4 expect2 =
float4x4({1, 2, 3, 4}, {5, -1, -2, 8}, {9, -3, 1, 2}, {13, 14, 5, -1});
336 EXPECT_M4_NEAR(expect2, mat, 1e-8f);
338 mat.
view<2, 2, 0, 0>() = mat.
view<2, 2, 1, 1>();
339 float4x4 expect3 =
float4x4({-1, -2, 3, 4}, {-3, 1, -2, 8}, {9, -3, 1, 2}, {13, 14, 5, -1});
340 EXPECT_M4_NEAR(expect3, mat, 1e-8f);
350TEST(math_matrix_types, ViewScalarOperators)
352 float4x4 mat =
float4x4({1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}, {13, 14, 15, 16});
354 auto view = mat.
view<2, 2, 1, 1>();
379 float4x4 expect =
float4x4({1, 2, 3, 4}, {5, 20, 24, 8}, {9, 36, 40, 12}, {13, 14, 15, 16});
380 EXPECT_M4_NEAR(expect, mat, 1e-8f);
389TEST(math_matrix_types, ViewMatrixMultiplyOperator)
391 float4x4 mat =
float4x4({1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}, {13, 14, 15, 16});
392 auto view = mat.
view<2, 2, 1, 1>();
408TEST(math_matrix_types, ViewVectorMultiplyOperator)
410 float4x4 mat =
float4x4({1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}, {13, 14, 15, 16});
411 auto view = mat.
view<2, 3, 1, 1>();
423TEST(math_matrix_types, ViewMatrixNormalize)
425 float4x4 mat =
float4x4({1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}, {13, 14, 15, 16});
429 {0.476731300, 0.572077572, 0.66742378, 8},
430 {0.517891824, 0.575435340, 0.63297885, 12},
432 EXPECT_M4_NEAR(expect, mat, 1e-8f);
EXPECT_EQ(BLI_expr_pylike_eval(expr, nullptr, 0, &result), EXPR_PYLIKE_INVALID)
const MatView< T, ViewNumCol, ViewNumRow, NumCol, NumRow, SrcStartCol, SrcStartRow, Alignment > view() const